【发布时间】:2017-05-26 20:08:39
【问题描述】:
我正在使用这个字符串:
qr/I Love Chocolate|And Free Shipping|All (day|night)|please/i;
我正在使用以下正则表达式模式:
(?:qr\/)?(.*?)(?:\||\/)
我想找回以下匹配项:
["I Love Chocolate", "And Free Shipping", "All (day|night)", "please"]
然而,这是我真正得到的回报:
["I Love Chocolate", "And Free Shipping", "All (day", "night)", "please"]
我修改了我的正则表达式以使用回溯:
(?:qr\/)?(?<!All \(day|night\))(.*?)(?:\||\/)
但是,这仍然会将字符串拆分为All (day 和night)。
如何调整正则表达式,而不是将All (day 和night) 捕获为单独的字符串,而是得到All (day|night)?
更一般地说,麻瓜语言的目标是:“查找任何由竖线字符分隔的组,除非该组包含 1 个或多个被省略号包围的竖线字符;在这种情况下,将整个字符串视为一个组。”
【问题讨论】: