如果包含破折号的字符串超过3次,我将尝试匹配该字符串:
string-has-4-dashes-example
此示例中的正则表达式不匹配:
string-has-3-dashes
不幸的是,这不起作用
.*-{3,}.*
我的目标是构建这样的正则表达式:
\/germany\/.*-(\d{3,}\.html|\/product\/view\/id.*)$
将匹配类似类型的URL
https://www.test.de/germany/bla-blub-test-example-new-2-189.html
但不是:
https://www.test.de/germany/test-this-1931.html
答案 0 :(得分:1)
您可以使用此正则表达式来匹配具有3个以上连字符的字符串:
^(?:[^-]*-){4}
RegEx详细信息:
^
:开始(?:
:启动非捕获组
[^-]*-
:匹配0+个非连字符,后跟一个连字符)
:结束非捕获组。{4}
:匹配上述组的4个实例。答案 1 :(得分:0)
您可以使用以下正则表达式:
^(?=(?:.*-){4,})
它从start of string
开始,然后使用look ahead
,查找:任意数量的任何字符。重复4 or more times
。