我希望将字符串中的单词与反向顺序匹配。
如果名称以相反的顺序存在,我们希望对提示用户进行验证。
例如:
如果name
列的值为'Viral,Tennis'
现在,如果用户输入一个名为“Tennis,Viral”的新名称
那么我们如何使用正则表达式或其他方式匹配单词的逆序?
我正在使用C#.net进行开发。
答案 0 :(得分:0)
您可以查看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);
上面应该产生一个只由字母和数字组成的字符串。白色空间也将被移除。