python - 如果破折号在字符串内 n 次,则正则表达式匹配
问题描述
如果字符串包含破折号超过 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
解决方案
您可以使用此正则表达式来匹配带有 3 个以上连字符的字符串:
^(?:[^-]*-){4}
正则表达式详细信息:
^
: 开始(?:
:启动非捕获组[^-]*-
: 匹配 0+ 个非连字符后跟一个连字符
)
:结束非捕获组。{4}
:匹配上述组的 4 个实例。
推荐阅读
- vue.js - Vue.js 模板中的表达式与计算属性
- java - StringBuilder 复制删除中的最后一个字符
- java - firestore whereEqualTo 总是返回 true
- neo4j - 加载 csv 时跳过现有节点
- angular - Angular 10:mat-elevation-z 不适用于任何组件
- c# - .NET Core 3.1 和 SQL Server hierarchyid - 多个异常
- android - GoogleSignInClient.silentSignIn() 在 Android 应用程序中成功注销后是否应该失败?
- powerbi - DAX 分组评估
- javascript - 如何在邮递员预请求脚本中获取 JWT 令牌?
- javascript - 在数组内部映射数组