Elasticsearch,处理日期字段中的空值

时间:2016-02-14 18:24:42

标签: regex

我有以下字符串。

 MUST  (key1=value1)(key2>value2)NOT (key3=value3) SHOULD  (key4=value4)

我需要把它分成三个字符串。

MUST(key1=value1)(key2>value2)
NOT(key3=value3)
SHOULD(key4=value4)

某些陈述,例如,NOT或SHOULD可能不存在。所以,我必须匹配行尾。

现在,我提出了像/(MUST)?.*(?=NOT)/

这样的正则表达式

但如果SHOULD在NOT之前或者只有MUST,它就不起作用。如何在此添加OR运算符,如(?=NOT|SHOULD|$)

1 个答案:

答案 0 :(得分:1)

如何将以其中一个关键字开头的每个部分与下一个关键字(或字符串结尾)匹配:

<svg height="1000" width="977" xmlns="http://www.w3.org/2000/svg">
    <path id="myShape" d="M0 841.743l185.535 -185.535l1.953 0q-66.402 -105.462 -66.402 -228.501 0 -177.723 124.992 -302.715t302.715 -124.992 302.715 124.992 124.992 302.715 -124.992 302.715 -302.715 124.992q-105.462 0 -197.253 -48.825l-193.347 193.347zm310.527 -415.012q0 98.627 70.308 167.958t167.958 69.332 167.958 -69.332 70.308 -167.958 -70.308 -167.958 -167.958 -69.332 -167.958 69.332 -70.308 167.958z"/>
</svg>

测试live on regex101.com

<强>解释

\b(?:MUST|NOT|SHOULD)\b(?:(?!\b(?:MUST|NOT|SHOULD)\b).)*