我有一个如下字符串:
(GDRO WHERE PERIOD MONTH = 0 AND PERIOD QUARTER = 12) WHERE NDRO() AND KST
我编写了以下正则表达式,它省略了数字,符号和函数,只匹配单词。
/(?![A-Za-z]+\(\))([A-Za-z_](?:\d*))+/g
如果应用于上面的字符串,则结果为
GDRO, WHERE, PERIOD, MONTH, AND, PERIOD, QUARTER, WHERE, AND, KST
我还想要的是让我的正则表达式省略特定的词,即
(WHERE|PERIOD|MONTH|AND|WHERE)
有什么方法可以在我的正则表达式中指定这个,省略这些给定的单词并匹配其他所有单词,即得到以下结果?
GDRO, KST
答案 0 :(得分:1)
\b(?!(?:WHERE|PERIOD|MONTH|AND|WHERE)\b)(?![A-Za-z]+\(\))([A-Za-z_](?:\d*))+\b
试试这个。看看演示。
答案 1 :(得分:1)
是的,只需添加WHERE
,PERIOD
,MONTH
,AND
和WHERE
,即可更新您的否定前瞻。正则表达式:
/(?:(?![A-Za-z]+\(\)|WHERE|PERIOD|MONTH|AND|WHERE))(\b(?:[A-Za-z_](?:\d*))+\b)/g
测试用例匹配:
MATCH 1
1. [0-4] `GDRO`
MATCH 2
1. [39-46] `QUARTER`
MATCH 3
1. [70-73] `KST`