正则表达式抛光:如何不在搜索引用的子串中包含引号

时间:2010-10-11 19:54:59

标签: regex quotes double-quotes

我写了一个正则表达式,将搜索字符串拆分为其组成部分。功能包括:

  • 运营商:+-ANDOR
  • 按引号分组的单词(现在单一和双)
  • 正确地忽略撇号

所以:

((?<=^|\s)(?:[\+\-]?"[^"]+"(?=\s|$)|[\+\-]?'[^']+'(?=\s|$)|[\+\-]?\S+|AND|and|OR|or)(?=$|\s))

从结果匹配中排除分隔符引号的最简单方法是什么?例如:

lsdkjflws's ldkj and "lfldkfjs's ldkjfls" lskdj

导致这些部分:

  • lsdkjflws的
  • ldkj
  • “lfldkfjs的ldkjfls”
  • lskdj

我不需要这样做,我只想在正则表达式中再做一步。

1 个答案:

答案 0 :(得分:0)

什么引擎?如果它支持消极和积极的前瞻,那很简单:

而不是:

"[^"]+"

您可以使用以下内容:

(?<=")[^"]+(?=")

然后从匹配中排除引号,但仍然只匹配引号的内容。我希望这就是你所追求的目标。