PHP Regex olumsuzlama

3 Cevap php

Ben bir web sitesi bazı veri ayıklayan bir web bot var. Sorun td etiketleri arasındaki her şeyi ayıklamak gerekir bu yüzden bazı şeyleri maç için biraz zor bu yüzden html içerik hat frensiz gönderilmiş olmasıdır. Burada bir dize örnek:

<a class="a" href="javascript:ow(19623507)">**-**-**-***.cstel.net</a>&nbsp; (<b><font color="#3300cc">Used</font></b>)</td><td><a class="a" href="javascript:ow(19623507)">**-**-**-***.cstel.net</a>&nbsp; (<b><font color="#3300cc">Used</font></b>)</td>

Ve şimdiye kadar benim regex:

<a\s+class="a"\s+href="javascript:ow\((.*?)\)">.+</a>(?!<td>).+</td>

Ama benim regex yerine, tüm içeriğini eşleşen bütün çizgi eşleşir. Herhangi bir fikir?

3 Cevap

Regexes üzerinde zaman kaybetmeyin. DOM ve XPath'i kullanın.

 DOMDocument::loadHTML($html)->getElementsByTagName('a')

Eğer .+ .+? değiştirerek denediniz mi?

Uygun satır sonları nereye belirleyebilirsiniz? Eğer öyleyse, ilk uygun bir satır sonu olan belirteçleri değiştirin ve sonra (- Ben denedim değil ki desen çalıştığını varsayarak) var desen kullanmak daha kolay olabilir.

Sizin model ÇOK belirli görünüyor, ama belki de sen ne yapıyorsun için çalışıyor.