2015-07-17 8 views
-1

Я извлекаю список ссылок с веб-страницы в массив. Затем пройдите через них, ища очень специфический тип ссылки.Basic php preg_match не работает

Ссылка ДОЛЖНА быть «viewprofile.aspx? Profile_id =», за которой следует номер.

Так что я в настоящее время использую это, но он не работает.

if (preg_match("/viewprofile.aspx?profile_id=(\D)/", $link)) { 

Я ожидал, что код, чтобы оставить меня следующее:

viewprofile.aspx?profile_id=656465465 

Однако в результатах я вижу:

viewprofile.aspx?profile_id=" + json[i].ProfileID 
+0

Какая у вас ссылка $ link? Можете ли вы повторить это и написать. –

+0

какая '$ link'поддерживается? можете ли вы вставить это здесь? –

+0

$ link содержит список гиперссылок с веб-страницы, затем он циклически привязывается к $ link, и я хочу фильтровать очень специфический тип url (как указано выше). –

ответ

1
if (preg_match("/viewprofile.aspx?profile_id=(\D)/", $link)) { 
            ^---- {0,1} equivalent 

Поскольку вы не избежать ?, регулярное выражение интерпретируется как asp followed by an optional "x" followed by profile .... ? никогда не будет сопоставляться ag ainst любой литерал ? в тексте $ link.

Попробуйте вместо \?.

О, и \D означает «однозначный». Поскольку ваш URL-адрес имеет несколько номеров, вы бы не хотели \d+? «одна или несколько цифр».

+0

Спасибо, Марк! –

Смежные вопросы