除了短语包含该单词之外的单词

时间:2015-09-21 16:19:50

标签: javascript jquery regex split

我正在尝试拆分where子句,我想在AND|OR|NOT上拆分文字,除非NOT位于“词组”NOT INNOT LIKE或{{1} }}

第一个例子:

IS NOT NULL

我希望在DEVLDATE IS NOT NULL AND STATUS = D AND PICKUPDATE IS NULL 上分割3个分段,但在此实例中不在AND分割。

第二个前:

NOT

我想分开这个(NOT (STATUS IN ('A','X') )) AND LINEHAUL = 0 & NOT,在这个例子中也期望3个段

我正在尝试从另一个几乎相似的例子中看到它,但它根本没有分裂。我接下来的零正则表达式经验。不确定我错过了什么,或者是否可能。

提前致谢。

AND

1 个答案:

答案 0 :(得分:1)

尝试:

\b(AND|OR|NOT(?!\s+NULL|IN|LIKE))\b

DEMO

关于你的正则表达式:

(?!.*\b([NOT IN]|[NOT LIKE]|[NOT BETWEEN]|[IS NOT NULL])\b)(?=.*\b(AND|OR|NOT)\b
  • [NOT IN] - 这是字符类[...],它将匹配字符 你放入,所以它可以匹配:N,T等。不完整 字/句子,
  • ([NOT IN]|[NOT LIKE]|[NOT BETWEEN]|[IS NOT NULL]) - 这整个部分实际上只能匹配一个字符,因为它不使用任何量词或间隔,它根本无法正常工作,
  • 所以整个正则表达式应该匹配:一些带有AND,OR或NOT的文本,但是如果部分匹配的行不包含字符类中包含的字母和空格.....所以它可能不匹配任何东西