很长一段时间以来,我一直想提高我的正则表达式技能,并且多次推荐“掌握正则表达式”,所以我买了它,并在过去一天左右一直在阅读它。
我创建了以下正则表达式:
^(?:<b>)?(?:^<i>)?<a href="/site\.php\?id=([0-9]*)">(.*?) \(([ a-z0-9]{2,10})\)</a>(?:^</i>)?(?:</b>)?$
它与前两个链接匹配,但忽略了<i>
标签所包含的两个链接。它提取 id、title 和 type。
<a href="/site.php?id=6321">site 1 title (type 1)</a>
<b><a href="/site.php?id=10254">site 2 title (type 2)</a></b>
<i><a href="/site.php?id=5479">site 3 title (type 3)</a></i>
<b><i><a href="/site.php?id=325">site 4 title (type 4)</a></i></b>
虽然可行,但对于这么简单的事情来说似乎相当长,可以改进吗?