正则表达式匹配字符串顺序

时间:2012-05-14 08:51:58

标签: regex

我希望将字符串中的单词与反向顺序匹配。

如果名称以相反的顺序存在,我们希望对提示用户进行验证。

例如:

如果name列的值为'Viral,Tennis'

现在,如果用户输入一个名为“Tennis,Viral”的新名称

那么我们如何使用正则表达式或其他方式匹配单词的逆序?

我正在使用C#.net进行开发。

1 个答案:

答案 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);

上面应该产生一个只由字母和数字组成的字符串。白色空间也将被移除。