首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.net正则表达式的帮助

.net正则表达式的帮助
EN

Stack Overflow用户
提问于 2011-03-30 17:29:16
回答 2查看 90关注 0票数 0
  1. var a=@blah blah“
  2. if (b ==”)
  3. if (c ==“)
  4. var d=”

H 19var e=“H 210G 211

寻找与第2-5行匹配的.Net正则表达式,但不是第1行。输入是每一行。从根本上说,我是为了区分在@前缀字符串文字中使用"“的A和使用”string.Empty更好的“的B。

=\s*""是我的起点,但它匹配所有5行。我如何修改它,使其不匹配1,但匹配其他?以某种方式修改它以合并^@?

EN

回答 2

Stack Overflow用户

发布于 2011-03-30 18:01:18

在有保留的情况下,以下是问题的五种情况:

代码语言:javascript
运行
复制
^[^=]*==?\s*""

细目:

代码语言:javascript
运行
复制
^      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

然而,在这种情况下使用正则表达式是危险的,因为它对语言语法没有意义。很容易想出一些代码,在这些代码中,这个正则表达式匹配,但不是您想要的,或者这个常规表达式在您期望的时候不匹配的地方。一个真正全面的正则表达式实际上是不可能编写和维护的。

票数 1
EN

Stack Overflow用户

发布于 2011-03-30 17:33:08

一个简单的方法是:

代码语言:javascript
运行
复制
={1,2}\s*""

这显然也将与您的第一个示例相匹配。为了不匹配第一个示例和其他不将该模式用作语句的情况,您或多或少需要为C#代码构建一个语法解析器。

我不认为Regex是这个任务的最佳解决方案..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5489860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档