我想用相反的顺序匹配字符串中的单词。
如果名称以相反的顺序存在,我们希望将验证提示用户。
例如:
如果name
列的值为“病毒,网球”
现在,如果用户输入一个新名称,其值为 'Tennis,Viral'
那么我们如何使用正则表达式或其他方式匹配单词的逆序呢?
我正在使用 C#.net 进行开发。
我想用相反的顺序匹配字符串中的单词。
如果名称以相反的顺序存在,我们希望将验证提示用户。
例如:
如果name
列的值为“病毒,网球”
现在,如果用户输入一个新名称,其值为 'Tennis,Viral'
那么我们如何使用正则表达式或其他方式匹配单词的逆序呢?
我正在使用 C#.net 进行开发。
您可以查看Regex.Split(String input, String regex)并执行以下操作:
String[] userEntry = Regex.Split(userString, "\\s+");
StringBuilder sb = new StringBuilder()
for (int i = userEntry.Length -1; i >= 0; i--)
{
sb.append(userEntry[i]).append(" ");
}
String result = sb.ToString();
//Do Validation
这样做可以解决问题,但是,您需要记住,如果您不想更改特殊符号(例如逗号)的顺序,事情会变得有点混乱。您可以轻松删除它们并在没有特殊符号的情况下进行任何验证。
编辑:这取决于特殊符号的含义。正则表达式[^a-zA-z0-9]+
将匹配任何不是字母(大写或小写)且也不是数字的字符。所以你可以很容易地做这样的事情:
string input = ...
string pattern = "[^a-zA-z0-9]+";
string replacement = "";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, replacement);
以上应该产生一个仅由字母和数字组成的字符串。空格也将被删除。