我有以下字符串。
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|$)
答案 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>
<强>解释强>
\b(?:MUST|NOT|SHOULD)\b(?:(?!\b(?:MUST|NOT|SHOULD)\b).)*