日期:2014-05-16  浏览次数:20900 次

ASP正则表达式(.[^<>]*?)为什么不能匹配空字符串
ASP正则表达式(.[^<>]*?)为什么不能匹配空字符串

MyString="刘德华<a href=""#"">微博</a>收听。谢霆锋<a href=""#"">[微博]</a>收听。"

 
MyPat="<a(.[^<>]*?)>(.[^<>]*?)微博(.[^<>]*?)</a>"

我发现能匹配 谢霆锋后面那个,刘德华匹配不到。 因为谢霆锋多了个[]

为什么(.[^<>]*?)为什么不能匹配空字符串

------解决方案--------------------
MyPat="<a(.[^<>]*?)>(.[^<>]*?)微博(.[^<>]*?)</a>"
你这个明显的正则有问题

(.[^<>]*?)你这里的多了一个.  这个表示任意一个字符,你这个正则的匹配下来是匹配“微博”前后都至少有一个字符的超级链接
------解决方案--------------------
所以你的只能匹配后面一个
------解决方案--------------------
<a(.[^<>]*?)>(.[^<>]*?)?微博(.[^<>]*?)?</a>
------解决方案--------------------
引用:
w 我后面不是加了星号吗? *

你这个值针对中括号里的

去掉.就好了