正则表达式 一个奇怪问题

2019-10-21 22:30:21 +08:00
 faketemp

测试工具:Notepad++
测试文本: http://www.baidu.com,http://www.123.com,http://www.sina.com,MAIN
测试正则: http.+?MAIN

测试结果: http://www.baidu.com,http://www.123.com,http://www.sina.com,MAIN

问题是非贪婪模式下最短匹配,结果不应该是“http://www.sina.com,MAIN”吗

百思不得其解中……

2157 次点击
所在节点    问与答
22 条回复
ClericPy
2019-10-22 11:50:32 +08:00
@faketemp
呃, 这和 NFA 引擎不会做那些细致回溯有点关系, 可以参考用 aa 匹配 aaaa 会发现只会得到两个结果, 而不是三个结果, 基本上就是拿着正则串去原始字符串里找, 具体算法还挺有意思, 可以去了解下 NFA 和 DFA 方面的东西
faketemp
2019-10-22 11:57:59 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/611557

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX