* Uwaga: Wyjście z Array() jest print_r PHP() *Regex aby zatrzymać w pierwszym wystąpieniu # łańcucha # wewnątrz regex
mam ten tag HTML:
<tr>
<td width="40" align="left"><div class="icSkill" id="skill4"></div></td>
<td colspan="2">SOME_VALUE_I_WANT </td>
</tr>
Naprawdę chcę wyodrębnić to z RegEx i nie chcę używać parserów HTML w tym przypadku.
zrobić to Regex (używam S-flagę zignorować znaki nowej linii pliku);:
\<tr\>\<td\swidth="40"\salign="left"\>\<div\s+class="icSkill"\s+id="skill(\d+)".*\<\/tr\>
Problem jest teraz, że regex nie zatrzymuje się na pierwszym Close znacznik TR, ale chcę to do. Wiem, że prawdopodobnie ma coś todo z twierdzeniami, tylko ja nie wiem jak.
Array
(
[0] => <tr><td width="40" align="left"><div class="icSkill" id="skill4"></div></td><td colspan="2">SOME_VALUE_I_WANT
</td></tr><tr><td rowspan="2" align="left"><div class="icGuard" id="guard9"></div></td></tr>
[1] => 4
)
Podstawowe przykłady, takie jak:/[^ <] */nie będą działać w tym przypadku. Jest tam również sposób regex powiedzieć coś takiego:
/[^A_STRING]*/ (in words; stop unless you find A_STRING)
OR BETTER EXAMPLE:
/[^A_STRING_FIRST_TIME]*/ (in words; stop unless you find A_STRING for the FIRST_TIME)
Dlaczego nie chcesz używać analizatora HTML w tym przypadku? –
Gdzie jest twój kod? Nie widać modyfikatorów, których używasz. Najprawdopodobniej brakuje ci modyfikatora "U". Poza tym, spraw, żebyś chciał używać parserów html (aka domdocument) – Alex
Może powinienem był zadać to pytanie inaczej, przepraszam. Chcę tylko wiedzieć, czy mogę zrobić \ [^ a] \ gdzie "a" byłoby ciągiem znaków. Nie chcę tego \ [^ abc] \, ponieważ pozwala to wszystkim na ważne wyjątki. –