【发布时间】:2020-09-08 18:55:08
【问题描述】:
这个“几乎”完全有效:\b(?:may )?contains? \w+(?:[,; ]+?\w+){2}\b
与以下匹配:
- 可能包含 A、B、C
- 包含 X、Y、Z
- 包含 X、Y、Z
- 可能包含 A B C 包含 X;Y Z
- 可能包含 A、B、C
- 可能包含 A 和 B; C; D
- 可能包含 A 和 B、C、D 和 F 包含 1、2、3
除了最后两个之外,一切都正常,它们只对“B”执行第一个匹配(可能包含 A 和 B)
我基本上需要拆分 May Contain(s) 或 Contains 上的句子。它们可以按任何顺序排列,之后/之间的文本变化很大。
所以,我想将每个匹配项分开,例如 (MAY CONTAINs ...) 和/或 (CONTAINs ...)。
我用这个答案作为我的基础Regex to split and group based on specific phrases
【问题讨论】:
-
您的问题忽略了一些非常关键的问题:您希望从上面给出的每个输入中提取什么,或者应该输出什么?
-
我以为我在上一个问题中引用过,我基本上期待一组匹配项,每个匹配项都以“可能包含”...或“包含”...开头,文本直到下一个匹配项.在最后一个项目符号中,我希望有 2 个匹配项 - “可能包含 a 和 b、c、d 和 f”和“包含 1,2、3)
-
很好,我的评论是否为您澄清了输出?
-
您可能不喜欢我的 cmets,但恕我直言,它可以让您的问题更清晰,从而增加您更快获得答案的机会。
-
CONTAIN x and y, may contain c, d and e是一个有效的输入吗?