C#正则表达式方法解释 新正则表达式(@“\n| \r|\\\\\\\*.!\$\\$\\%\;”;

C#正则表达式方法解释 新正则表达式(@“\n| \r|\\\\\\\*.!\$\\$\\%\;”;,c#,regex,C#,Regex,我有一个上面的正则表达式示例,但我不能真正理解要查找什么?有人能帮我一把吗?它将尝试匹配列出的任何特殊字符:\n,\r,\,,*,,$,%该|是正则表达式或运算符 一些字符需要用额外的\转义,因为它们在正则表达式中有一个含义(\,$,…)正则表达式匹配由运算符分隔的一个字符。这里有一些特殊字符(比如换行符和回车符的\n或\r,或者一个美元符号的\$和一个星号的\*,因为$和*是正则表达式),但除此之外,它非常简单 也就是说,对于匹配有效字符列表中的单个字符,a通常是更好的选择,不仅因为转义元字符

我有一个上面的正则表达式示例,但我不能真正理解要查找什么?有人能帮我一把吗?

它将尝试匹配列出的任何特殊字符:
\n
\r
\
*
$
%
|
是正则表达式或运算符


一些字符需要用额外的
\
转义,因为它们在正则表达式中有一个含义(
\
$
,…)

正则表达式匹配由运算符
分隔的一个字符。这里有一些特殊字符(比如换行符和回车符的
\n
\r
,或者一个美元符号的
\$
和一个星号的
\*
,因为
$
*
是正则表达式),但除此之外,它非常简单

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

new Regex(@"\n|\r|\\|<|>|\*|!|\$|%|;");
new Regex(@"[\n\r\\<>*!$%;]");
newregex(@“[\n\r\\*!$%;]”);

regex中的
|
是一个交替运算符
A | B
表示匹配
A
B
。它也可以使用字符类编写-
[AB]
,这也意味着同样的事情

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

newregex(@“[\n\r\\*!$%;]”);
new Regex(@"[\n\r\\<>*!$%;]");