我有多个记录,我想匹配特定的字符串,同时不匹配特定的字符串。我想出了一个模式,但它匹配所有。任何人都可以修改模式吗?
Pattern: /PF\s*(?:XAP|FNI)?\s*O\/\s*(?:RG|VO|HS).*\s*\+?(?!HSAC|VOG)/gm
Here are the records-
Here are the records should be matched:
PFO/RGETK
PFO/RGETK+/RGETK
PFO/VOG+/RGETK
PFO/VOG+/VOG
PFO/RGETK+/VOG
PFXAPO/RGETK
PFXAPO/RGETK+/RGETK
PFXAPO/VOG+/RGETK
PFXAPO/VOG+/VOG
PFXAPO/RGETK+/VOG
PFFNIO/RGETK
PFFNIO/RGETK+/RGETK
PFFNIO/VOG+/RGETK
PFFNIO/VOG+/VOG
PFFNIO/RGETK+/VOG
PF O/RGETK+/HSAC
PF O/HSAC+/RGETK
PF O/RG+/RGETK
PF O/RG+/HSAC
Here are the records should NOT be matched:
PFO/VOG
PFO/VOG+/HSAC
PFO/HSAC+/HSAC
PFXAPO/VOG
PFXAPO/VOG+/HSAC
PFXAPO/HSAC+/HSAC
PFFNIO/VOG
PFFNIO/VOG+/HSAC
PFFNIO/HSAC+/HSAC
PF O/ HSAC
PF XAP O/HSAC
PFFNI O/ HSAC
1条答案
按热度按时间vuktfyat1#
您可以使用
请参见regex demo。
^
-字符串开始PF
-PF
\s*
-零个或多个空格(?:(?:XAP|FNI)\s*)?
-XAP
或FNI
的可选序列,然后是零个或多个空格O\/
-O/
(?!\s*(?:VOG\+?(?:\/HSAC)?|HSAC\+?\/HSAC)$)
\s*
-零个或多个空格[A-Z]*
-零个或多个大写ASCII字母\+?
-可选的+
字符(?:\/[A-Z]+)?
-/
和一个或多个ASCII大写字母的可选序列$
-字符串结束。