繁体   English   中英

简易RegExp不匹配

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM