<a href="fdsafd" target="_blank" class="t" >fjdafdak</a>
<a href="xxfdsafd" title="abcde" target="_blank" class="t" >fjaddk</a>
<a href="yyfdsafd" target="_blank" class="t" >fjafdk</a>
<a href="zzfdsafd" target="_blank" class="t" >fjaddddk</a>
<a href="xxfdsafd" title="abcde" target="_blank" class="t" >fjaddk</a>
<a href="yyfdsafd" target="_blank" class="t" >fjafdk</a>
<a href="zzfdsafd" target="_blank" class="t" >fjaddddk</a>
朋友需要提取形如以上内容中的url和title,且取title时须判断<a>标签中是否存在title属性,如果存在,则匹配title属性的值,否则匹配<a></a>之间的值作为title。
通过三目运算,可以很方便解决上面的需求。
三目表达式 (?(expression)yes|no)
说明:如果expression被搜索到就执行yes部分,否则就执行no部分。
编写正则如下:
<a href="(?<url>[^"]*?)" (?(title="[^"]*?"[^<>]*>[\s\S]*?)title="(?<title>[^"]*?)"[^<>]*>[\s\S]*?|[^<>]*>(?<title>[\s\S]*?))</[^<>]*>
经过正则表达式测试工具测试,提取成功。