【发布时间】:2014-06-03 08:38:22
【问题描述】:
我在 MVC 应用程序中使用正则表达式,它允许用户创建包含许多特殊字符的用户名,包括 *。一个小问题是,在搜索用户时,我们允许通配符搜索使用* 作为搜索的通配符部分。这是正则表达式在创建端的样子:
@"^([a-zA-Z0-9!\@#\$%\^&\*\(\)-_\+\.'`~/=\?\{\}\|]){6,255}$"
下面是正则表达式在搜索端的样子:
@"^([a-zA-Z0-9!\@#\$%\^&\*\(\)-_\+\.'`~/=\?\{\}\|]){6,255}$|([\w]){0,0})"
有没有办法通过允许用户搜索可能在用户名中包含 * 的整个用户名,同时仍然允许其他用户使用 * 作为通配符搜索来使这项工作正常工作?
【问题讨论】:
-
请解释一下?
-
见this question(我其实不知道C#没有内置的方法来使用glob类型匹配......我真的很惊讶。)
-
仅供参考,
[a-zA-Z0-9!\@#\$%\^&\*\(\)-_\+\.'`~/=\?\{\}\|]是[a-zA-Z0-9!@#$%^&*()_+.'`~=?{}|-]。这里字符类中唯一特殊的字符是-,也是唯一一个你没有转义的字符......把它放在最后会转义它。
标签: c# regex asp.net-mvc wildcard