我想匹配这些网址
de-de/checkout/
de-de/checkout/confirm/
使用RegExp。我已经尝试了/(.*)\/checkout\/(|$|confirm\/$)/g
,但我只获得了两场比赛
de-de/checkout/
de-de/checkout/
这可能很容易,但我不知道为什么这不起作用。
感谢您的帮助!
答案 0 :(得分:2)
(.*)\/checkout\/(confirm\/)?
regexr.com中的两场比赛 考虑结帐或确认是一个关键字
答案 1 :(得分:1)
删除替换中的前导let viewInfos = InfosConnectView(connectDetailsItem: self.connectDetailsItem, frame: CGRect(x: 0, y: 9, width: self.view.frame.width, height: 200))
:
|
Regex将选择无限制的替换组的最短替代方案,并为其提供0长度匹配。
在当前状态下,您的交替意味着“无论是字符串的结尾还是字符串的结尾”或确认/后跟字符串的结尾。
答案 2 :(得分:1)
在我看来,这更容易理解:
(.+?)?\/checkout\/(?:confirm\/)?
虽然我不确定您是否需要简单地匹配网址(真/假)或捕获de-de
或您提供的样本之前或之后的任何内容。
confirm
被包装到非捕获组中,因为它是可能或可能不会