我的目的是想找到文本中所有的链接文本。
假设文本内容为:
<a href="#">link1</a>other content <a >link2</a>
分别使用如下正则表达式:
1. >.*< 得到的结果是 >link1</a>other content <a >link2<,能理解;
2. >.*?< 得到的结果居然就是 >link1< 、>other content < 和 >link2< ,这个“?”在这里起到了什么样的作用呢?
3. >(.*)?< 我又加了一对括号,得到的结果和 “1”相同;
我又试了其他一个正则:
^\w+ 匹配第一个单词, 如果加上一个“?号”,
^\w+? 就只能匹配第一个字母了……
对这个?的使用彻底迷糊了~~~~~~~~~
在.*或.+后的?表示采用非贪婪模式匹配,即>和<之间的.字符会尽可能少。
实力字符串:<a href="#">link1</a>other content <a >link2</a>
按正则表达式>.*<贪婪匹配,则结果为: >link1</a>other content <a >link2<;
按正则表达式>.*?<非贪婪匹配,则结果为: >link1<、>other content <、 >link2<;
?表示0-1次重复
\w+表示数字字母 ,
\w+?如果存在就是取数字字母第一个