Я давно хотел улучшить свои навыки регулярных выражений, и "Освоение регулярных выражений" рекомендовалось довольно много раз, поэтому я купил его и читал его в течение последнего дня или около того.
Я создал следующее регулярное выражение:
^(?:<b>)?(?:^<i>)?<a href="/site\.php\?id=([0-9]*)">(.*?) \(([ a-z0-9]{2,10})\)</a>(?:^</i>)?(?:</b>)?$
Соответствует первым двум ссылкам, но игнорирует две, заключенные в тег <i>
.
Извлекает идентификатор, заголовок и тип.
<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>
Несмотря на то, что это работает, кажется, что что-то настолько простое, можно ли его улучшить?