示例:解析源字符串
apples, pears
不包括kiwis
,不oranges, grapefruits
,包括bananas
工作版(?:(?<in>with\b|included)|(?<out>without|excluded))(.+?)
会产生与以下群体的匹配:
apples, pears
,bananas
] oranges, grapefruits
,kiwis
] 提前致谢!
答案 0 :(得分:0)
您可以使用
(?:(?<in>with\b|includ(?:ed|ing))|(?<out>without|exclud(?:ed|ing)))((?:(?!with(?:out)?|exclud(?:ed|ing)|includ(?:ed|ing)).)+)
请参阅regex demo:
<强>详情:
(?:
- 启动非捕获分组构造
(?<in>with\b|includ(?:ed|ing))
- &#34; in&#34;小组:with
整个单词(\b
是单词边界)或included
/ including
|
- 或(?<out>without|exclud(?:ed|ing))
- &#34; out&#34;小组:without
,excluded
/ excluding
)
- 分组结束((?:(?!with(?:out)?|exclud(?:ed|ing)|includ(?:ed|ing)).)+)
- 捕获组1匹配任何字符(.
),一次或多次(+
),不会启动否定前瞻中的任何序列({{ 1}},with
,without
/ excluded
,excluding
/ included
)