Naprawdę chciałbym mieć Regex, który jest wykonywalny w node.js (więc nie ma obsługi jQuery DOM itp., Ponieważ tagi mogą mieć inne zagnieżdżenie), który pasuje do wszystkich tekst, który NIE jest tagiem HTML ani jego częścią w oddzielne grupy.Javascript Regex: Dopasuj tekst NIE część znacznika HTML
E.g. Chciałbym, aby dopasować "5", "ELT.", "SPR", " ", "OWP", "Unterricht", " ", "& nbsp" i "OWP" z tego łańcucha:
<tr class='list even'>
<td class="list" align="center" style="background-color: #FFFFFF" >
<span style="color: #010101">5</span>
</td>
<td class="list" align="center" style="background-color: #FFFFFF" >
<b><span style="color: #010101">ELT.</span></b>
</td>
<td class="list" align="center" style="background-color: #FFFFFF" >
<b><span style="color: #010101">SPR</span></b>
</td>
<td class="list" style="background-color: #FFFFFF" > </td>
<td class="list" align="center" style="background-color: #FFFFFF" >
<strike><span style="color: #010101">pio</span></strike>
</td>
<td class="list" align="center" style="background-color: #FFFFFF" >
<span style="color: #010101">Unterricht</span>
</td>
<td class="list" style="background-color: #FFFFFF" > </td>
<td class="list" style="background-color: #FFFFFF" > </td>
<td class="list" align="center" style="background-color: #FFFFFF" >
<b><span style="color: #010101">pio</span></b>
</td>
</tr>
Mogę zapewnić, że w tagach nie będzie znaków ">".
Rozwiązanie znalazłem (?<=^|>)[^><]+?(?=<|$)
, ale to nie będzie działać w node.js (prawdopodobnie dlatego, że lookaheads? Mówi „Nieprawidłowa grupa”)
Wszelkie sugestie? (i tak, naprawdę myślę, że Regex jest właściwą drogą, ponieważ html może być zagnieżdżony na inne sposoby, a zawartość zawsze ma tę samą kolejność, ponieważ jest to tabela)
Uwielbiam linkować do tego http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – NimChimpsky
Czy tego właśnie szukasz? http://stackoverflow.com/questions/822452/strip-html-from-text-javascript –
Nie możesz używać wyrażeń regularnych do parsowania HTML (to jest punkt linku @NimChimpsky podany), ponieważ HTML nie jest zwykłym język. Każda próba użycia wyrażeń regularnych, wyłącznie do parsowania HTML *** zakończy się niepowodzeniem ***. Nie masz wyboru, musisz tylko * przeanalizować * kod HTML. –