Я строю PHP-скрипт, который будет просеивать содержимое HTML запроса cURL и сопоставлять шаблоны для URL-адресов, чтобы я мог манипулировать добавлением тега GET для отслеживания исходящих ссылки.Regex Pattern (...) + не соответствует несколько раз
У меня есть шаблон регулярных выражений, который работает, но я не могу заставить его соответствовать более одного раза; он даже не найдет дубликат элемента, который он соответствует.
Это образец HTML, который в настоящее время только соответствующий первый якорь тег:
`<html><head>
<title></title>
</head>
<body class="body class">
<div>
<a title="1hubwhrrstn" href="http://www.example.com?tag=9qgbc"></a>
<a name=""></a>
<a class="3hubwhbbsrstn" href="http://www.example.com?tag=uqgibc"></a>
<a class="4whbihbw4bsetrrstn" href="http://www.example.com?tag=9uq4i"></a>
<a href="http://www.example.com?tag=9uq4i" class="4whbihbstn"></a>
</div></body>
</html>`
Узор Regex я использую: (<a.*href=".*".*><\/a>)+/im
, и это только соответствие первый экземпляр привязки.
Кроме того, я не могу найти способ сказать, чтобы он соответствовал новой строке или всего на одной строке - она дает мне одно совпадение, используя несколько тегов привязки, когда они находятся на одной строке, хотя я используя группу захвата, чтобы соответствовать шаблону одному тегу привязки. Таким образом, в данном случае, это найти один матч - даже для сдвоенных анкеров на одной и той же линии:
`<html><head>
<title></title>
</head>
<body class="body class">
<div>
<a title="1tn" href="http://www.example.com"></a><a class="3htn" href="http://www.example.com"></a>
<a name=""></a>
<a class="4whbihbw4bsetrrstn" href="http://www.example.com?tag=9uq4i"></a>
<a href="http://www.example.com?tag=9uq4i" class="4whbihbstn"></a>
</div></body>
</html>`
Я прошел через два часа лужения и двойной проверки флагов и кванторов, тестирование, как я иду на regex101. com и не может понять, где я делаю ошибку.
Любая помощь будет отличной. Спасибо!
http://stackoverflow.com/questions/2204946/php-regular-expression-repeating-match-of-a-group , Связанный (JS): http://stackoverflow.com/questions/3537878/how-to-capture-an-arbitrary-number-of-groups-in-javascript-regexp –
Работает, если вы добавите 'g' флаг. – Xufox
Проблема не должна быть регулярным выражением, а скорее отсутствием модификатора '/ g' и, возможно, тем, как вы вызываете регулярное выражение. –