正则表达式匹配包含两个字符串之一的路径
Regex to match path containing one of two strings
正则表达式匹配第三段中的两个字符串之一,即在伪代码中:
/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))([^/]*)
您可以使用以下正则表达式 DEMO
content/au/(?:boomer|millenial)
负前瞻是怎么回事?这是一个简单的正匹配。
^/content/au/(?:millenial|boomer)(?:/|$)
最后一组表示匹配后需要跟斜杠或什么都不跟,以便排除以备选方案之一开头但包含其他文本的路径。
不要使用前瞻;只需使用简单的交替 millenial|boomer
然后是单词边界:
^/content/au/(?:millenial|boomer)\b(?:/.*)?
您可能也应该正确拼写 millennial(两个“n”,而不是一个)。
正则表达式匹配第三段中的两个字符串之一,即在伪代码中:
/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))([^/]*)
您可以使用以下正则表达式 DEMO
content/au/(?:boomer|millenial)
负前瞻是怎么回事?这是一个简单的正匹配。
^/content/au/(?:millenial|boomer)(?:/|$)
最后一组表示匹配后需要跟斜杠或什么都不跟,以便排除以备选方案之一开头但包含其他文本的路径。
不要使用前瞻;只需使用简单的交替 millenial|boomer
然后是单词边界:
^/content/au/(?:millenial|boomer)\b(?:/.*)?
您可能也应该正确拼写 millennial(两个“n”,而不是一个)。