C# .NET Regex problem
本文关键字:problem Regex NET | 更新日期: 2023-09-27 18:01:09
我正试图找到解决问题的方法。如果我执行以下C#代码:
Regex r = new Regex("[''r''n]*");
Match m = r.Match("''r''n");
如果我检查m.Success
的值,我得到的值为true,这是正确的。但是如果我检验m.Length
的值,我得到了0
的值。如果我检查m.Value
,我也会得到一个空白值。我的Regex是不是少了什么?我的印象是m.Success
需要为假并且m.Length
为0,或者m.Success
需要为真并且m.Length
需要大于0。如有任何帮助,我们将不胜感激!
Match.Success返回true,因为Regex应该匹配"零或更多";";''r〃;或";''n〃;,即回车或换行(如"*"符号所示(。但是,您提供的字符串(在Match中(包含反斜杠,r,反斜杠,n,它既不是回车也不是换行,因此匹配的长度为零。(在正则表达式中,"反斜杠,n"被视为单个字符的换行符(。
为了避免将来进一步混淆,请尝试在正则表达式前面加一个"@"符号,以避免与反斜杠在正则表达式中的工作方式混淆,如以下所示:
@"['r'n]*"
希望这能让我们更清楚地认识到;''r〃;代表回车;''n〃;用于换行。相关的正则表达式:
@"[''rn]*"
将匹配零个或多个反斜杠、r和/或n的实例。(双反斜杠是必要的,因为该符号在正则表达式中被特殊处理。(