【问题标题】:Ignore nested quote marks with RegEx使用 RegEx 忽略嵌套引号
【发布时间】:2015-11-16 14:02:10
【问题描述】:

我需要编写一个正则表达式来获取两个引号之间的文本,但我需要它只匹配字符串中的第一个和最后一个引号。

例如;

“如果您想继续,请按“是””

需要阅读;

如果您想继续,请按“是”

我当前使用的RegEx是这个;

 ([""'])(?:(?=(\\?))\2.)*?\1

上面的例子会带回比赛

请按

任何帮助将不胜感激!

谢谢,

【问题讨论】:

  • 为什么不剪掉第一个和最后一个字符?
  • 用于资源文件,需要正则分割。所以文件可能看起来像 name = "resource" 或 name = "res"thing"ource"。我需要使用正则表达式来获取相关文本。

标签: c# asp.net .net regex


【解决方案1】:

你能试试这个吗:

(?!["]).*(?<!["])

【讨论】:

  • 就是这个!您能否解释一下哪个部分允许忽略嵌套引号?感谢您的帮助。
  • 不客气。原来的正则表达式基本上是: ["](.*)["] 这个正则表达式只匹配第一个和最后一个引号;但与引号匹配。我的意思是结果是:“如果您想继续,请按“是”。所以我添加了额外的前瞻性“?!”看看后面“?
  • 我不建议在这里使用环视。使用(?s)"(.*)" 并获取match.Groups[1].Value
猜你喜欢
  • 1970-01-01
  • 2012-08-12
  • 2013-05-07
  • 1970-01-01
  • 1970-01-01
  • 2011-07-13
  • 1970-01-01
  • 2012-06-07
  • 1970-01-01
相关资源
最近更新 更多