寻找匹配第2 - 5行而不是1行的.Net正则表达式。输入是每一行。基本上,我想要区分A.在@前缀字符串文字中使用“”和使用“”使用“”,其中string.Empty会更好。
=\s*""
是我的开始,但它匹配所有5行。如何将其修改为不匹配1,但匹配其他?在某种程度上修改它以合并^ @?
答案 0 :(得分:1)
保留,这符合问题的五个案例:
^[^=]*==?\s*""
故障:
^ start of line
[^=]* any number of characters that are not equals
= a literal equals
=? an optional second equals
\s* any amount of whitespace ('@' here prevents a match)
"" an empty string
然而,在这种情况下使用正则表达式是危险的,因为它对语言语法不敏感。这很容易想出一些代码,其中这个正则表达式匹配但不是你想要的,或者当你期望它时这个常规expresison不匹配的地方。一个真正全面的正则表达式几乎不可能编写和维护。
答案 1 :(得分:0)
一个简单的方法是:
={1,2}\s*""
这显然也与你的第一个例子相符。为了不匹配您的第一个示例以及该模式未用作语句的其他情况,您或多或少需要为C#代码构建语法分析器。
我不认为,Regex是这项任务的最佳解决方案......