正则表达式中 .* 与 .*? 的区别

原文链接:https://leohowell.com/posts/regex-diff-point-asterisk-question-mark/

正则表达式中 .* 与 .*? 的区别, 简单说是贪婪匹配与非贪婪匹配的区别。 —— 由leohowell分享

简单说是贪婪匹配非贪婪匹配的区别。

比如说匹配输入串A: 101000000000100

  1. 使用 1.*1 将会匹配到1010000000001, 匹配方法: 先匹配至输入串A的最后, 然后向前匹配, 直到可以匹配到1, 称之为贪婪匹配。

  2. 使用 1.*?1 将会匹配到101, 匹配方法: *匹配下一个1之前的所有字符, 称之为非贪婪匹配。

所有带有量词的都是非贪婪匹配: .*?, .+?, .{2,6}? 甚至 .??

注: 翻译自StackOverflow回答

参考链接

http://stackoverflow.com/questions/3075130/difference-between-and-for-regex

http://www.regular-expressions.info/repeat.html#lazy

相关文章

  • 没有相关文章 :(
0 条评论
发表一条评论