0
new Regex(@"\n|\r|\\|<|>|\*|!|\$|%|;");

我上面有一个正则表达式示例,但我无法真正理解要查找的内容?谁能帮帮我?

4

3 回答 3

4

正则表达式匹配由交替运算符分隔的字符之一|。有一些特殊字符(例如\nor\r用于换行符和回车,或\$用于文字美元符号和\*文字星号,因为$and*是正则表达式元字符),但除此之外,它非常简单。

也就是说,为了匹配有效字符列表中的单个字符,字符类通常是更好的选择,这不仅是因为不需要转义元字符:

new Regex(@"[\n\r\\<>*!$%;]");
于 2013-10-21T14:04:50.497 回答
2

它会尝试匹配列出的任何特殊字符:\n, \r, \, <, >, *, !, $,是%|则表达式 OR 运算符。

有些字符需要额外转义,\因为它们在正则表达式语言中具有含义(\, $, ...)

于 2013-10-21T14:02:46.010 回答
2

|在正则表达式中是一个交替运算符。A|B表示匹配A或匹配B。它也可以使用字符类来编写——[AB]这也意味着同样的事情。

使用字符类的好处是,您不需要在其中转义正则表达式元字符,而您必须在外部进行转义,就像对*. 因此,您的正则表达式可以缩短为:

new Regex(@"[\n\r\\<>*!$%;]");
于 2013-10-21T14:05:14.010 回答