0

我编写了一个正则表达式来将搜索字符串拆分为其组成部分。特点包括:

  • 运算符:+, -, AND,OR
  • 用引号对单词进行分组(现在是单引号和双引号)
  • 正确忽略撇号

所以:

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

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

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

结果如下:

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

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

4

1 回答 1

0

什么引擎?如果它支持负前瞻和正前瞻,这很容易:

而不是这些:

"[^"]+"

你会使用这样的东西:

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

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

于 2010-10-11T20:08:59.167 回答