0

正则表达式匹配第三段中的两个字符串之一,即伪代码:

/content/au/(boomer or millenial)/...

示例匹配

/content/au/boomer 
/content/au/boomer/male/31 
/content/au/millenial/female/29/M 
/content/au/millenial/male/18/UM

示例不匹配

/content/au
/content/nz/millenial/male/18/UM
/content/au/genz/male

我试过这个,但无济于事:

^/content/au/(?![^/]*/(?:millenial|boomer))([^/]*)
4

3 回答 3

1

负前瞻是怎么回事?这是一个简单的,如果不是微不足道的,肯定的匹配。

^/content/au/(?:millenial|boomer)(?:/|$)

最后一组表示匹配需要后跟一个斜杠或什么都没有,以便排除以其中一个替代项开头但包含附加文本的路径。

于 2021-09-06T04:14:08.650 回答
1

不要向前看;只需使用简单的交替millenial|boomer,然后使用单词边界:

^/content/au/(?:millenial|boomer)\b(?:/.*)?

现场演示

您可能也应该正确拼写千禧年(两个“n”,而不是一个)。

于 2021-09-06T04:14:20.027 回答
0

您可以使用以下正则表达式DEMO

content/au/(?:boomer|millenial)

在此处输入图像描述

于 2021-09-06T04:13:34.487 回答