[英]Easy RegExp doesnt match
我想匹配那些网址
de-de/checkout/
de-de/checkout/confirm/
与RegExp。 我已经尝试过/(.*)\\/checkout\\/(|$|confirm\\/$)/g
,但是我只有两个匹配项
de-de/checkout/
de-de/checkout/
这可能很简单,但是我不知道为什么它不起作用。
谢谢你的帮助!
(.*)\/checkout\/(confirm\/)?
regexr.com中的两个匹配都在考虑将结帐或确认作为关键字
删除前导|
在您的交替中:
/(.*)\/checkout\/($|confirm\/$)/g
正则表达式将选择无界替代组中最短的替代方案,并为其提供了长度为0的匹配项。
在当前状态下,您的替换意思是“什么都不是,或者字符串的末尾,或者确认/后跟字符串的末尾”。
这是一个容易一点在我看来如下:
(.+?)?\/checkout\/(?:confirm\/)?
尽管我不确定您是否需要简单地匹配url(真/假)或捕获de-de
或您提供的示例之前或之后的内容。
confirm
被包装到一个非捕获组中,因为它是可能存在或不存在的唯一路径组件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.