创建简单的正则表达式

时间:2012-12-14 21:50:41

标签: c# regex

我正在尝试创建一个匹配具有以下条件的单词的正则表达式:

  • 匹配包含以下字符的单词:æøå和数字。
  • 如果单词包含以下任何字符,则无效:
    + - & | ! ( ) { } [ ] ^ " ~ * ? : \

所以例如这些话是可以的:

  

testæøå
  
TEST12   12test

但这些应该失败:

  

T + ST
  TE&安培; ST

2 个答案:

答案 0 :(得分:1)

[^+\-|!(){}\[\]\^"~*?:\\]+之类的东西怎么样?这将匹配任何不包含您要排除的字符的内容。您必须检查我是否在封闭的[]

内正确地反映了元字符

答案 1 :(得分:1)

万一你不知道,C#中的正则表达式比字符串操作慢得多: Regex in C#
但是,如果使用Regex.Compiled进行优化,则可以提高速度。但是,这会导致程序启动速度变慢。如果这将是任何类型的基于Web(C#/ Silverlight),我强烈建议使用字符串操作和搜索Regex,因为对于任何使用该页面的人来说,这将是非常慢的。

您可以轻松匹配Unicode或ASCII字符代码,并从那里接受/拒绝单词,性能更好
如果您决定使用正则表达式,请考虑Perl或其他脚本语言,使用Regex进行字符串操作要快得多。