H 19
var e=“H 210G 211
寻找与第2-5行匹配的.Net正则表达式,但不是第1行。输入是每一行。从根本上说,我是为了区分在@前缀字符串文字中使用"“的A和使用”string.Empty更好的“的B。
=\s*""
是我的起点,但它匹配所有5行。我如何修改它,使其不匹配1,但匹配其他?以某种方式修改它以合并^@?
发布于 2011-03-30 18:01:18
在有保留的情况下,以下是问题的五种情况:
^[^=]*==?\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
然而,在这种情况下使用正则表达式是危险的,因为它对语言语法没有意义。很容易想出一些代码,在这些代码中,这个正则表达式匹配,但不是您想要的,或者这个常规表达式在您期望的时候不匹配的地方。一个真正全面的正则表达式实际上是不可能编写和维护的。
发布于 2011-03-30 17:33:08
一个简单的方法是:
={1,2}\s*""
这显然也将与您的第一个示例相匹配。为了不匹配第一个示例和其他不将该模式用作语句的情况,您或多或少需要为C#代码构建一个语法解析器。
我不认为Regex是这个任务的最佳解决方案..。
https://stackoverflow.com/questions/5489860
复制相似问题