当前位置:  开发笔记 > 编程语言 > 正文

正则表达式贪婪的问题

如何解决《正则表达式贪婪的问题》经验,为你挑选了1个好方法。

我确信这个很容易,但我尝试了很多变化,但仍然无法满足我的需要.事情太贪婪了,我不能让它停止贪婪.

鉴于案文:

test=this=that=more text follows

我想选择:

test=

我试过以下正则表达式

(\S+)=(\S.*)
(\S+)?=
[^=]{1}
...

谢谢大家.



1> Owen..:

这里:

// matches "test=, test"
(\S+?)=

or

// matches "test=, test" too
(\S[^=]+)=

你应该考虑使用第一个版本.给定您的字符串"test=this=that=more text follows",版本1将匹配,test=this=that=然后继续解析到字符串的末尾.然后它会回溯,发现test=this=,继续回溯,找到test=,继续回溯,并test=作为最终答案来解决.

版本2将匹配test=然后停止.您可以在较大的搜索中看到效率提升,例如多行或整个文档匹配.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有