2011-12-06 56 views
1

我工作的一个正则表达式模式,但它包含了一些特殊字符。我不确定如何将它们合并到正常的正则表达式模式字符串中。具体而言,我需要测试,看看是否一个字符串包含“+/-'...正则表达式模式与特殊字符

我用引号等尝试,但没有运气(我非常新的正则表达式)。我在C#4.0中编写了这个代码。

一个字符串的例子是 “3Z1Z +/- 5.5”

任何帮助深表感谢 - 感谢!

回答

2

创建一个简单的正则表达式:如果此字符序列在字符串中的任何地方发现

foundMatch = Regex.IsMatch(SubjectString, @"\+/-"); 

将返回true。解释留给你做练习。

阅读全文here

1

这些是special character列表的一部分(see also)。基本上,通过在它们前面添加反斜杠(\)将它们添加到模式中。例如+成为\+

^\+|\-$  # + or - 

同样会去别的有特殊的含义,如.{}()^$|[]

有虽然有一些例外。例如,创建一个类如当:[a-z]连字符(-)将具有特殊含义(从A到Z的所有字母)。所以如果你想要一个文字连字符,你必须逃避它(除非它是班级的最后一个字符)。例如

[a-z-A-Z]  # hyphen should be escaped if you wanted a literal hyphen 
[a-z\-A-Z]  # the "correct" counter-part 

[a-zA-Z-]  # actually legal because it's inserted as the last character 
       # and therefor treated as a literal hyphen despite not being 
       # escaped.