我多年来一直在使用正则表达式,我已经阅读了一些教程和参考资料(emacs 正则表达式参考是我的圣经),但我仍然无法理解匹配。有没有一个很好的关于正则表达式匹配的综合教程和丰富的例子?任何人都可以给我一个链接,我最终可以深入了解正则表达式匹配吗?
例如困扰我的问题。
haystack = "[{one, {one, andahalf}},\n {{two, zero}, two},\n {{threezero}, three},\n {four}]"
pattern = "({.+})"
结果是:
{one, {one, andahalf}}
{{two, zero}, two}
{{threezero}, three}
{four}
现在,那到底是什么?贪婪还是非贪婪(它是 C# Regexp.Matches)?
为什么,为什么(非贪婪)结果不是:
{one, {one, andahalf}
{{two, zero}
{{threezero}
{four}
(匹配第一对可能的 {})
或(贪婪):
{one, {one, andahalf}},\n {{two, zero}, two},\n {{threezero}, three},\n {four}
(加工最大可能的 {} 对)
当然,实际结果正是我所需要的,我很高兴正则表达式能读懂我的想法,但我宁愿我读懂他的想法:-D 那么,有没有人有任何关于正则表达式匹配的体面教程帮助我了解这场比赛是如何做到的?