Tôi thực sự muốn có Regex có thể thực thi trong node.js (do đó không cần xử lý jQuery DOM, v.v. vì các thẻ có thể có lồng khác nhau) khớp với tất cả văn bản KHÔNG phải là một thẻ HTML hoặc một phần của nó thành các nhóm riêng biệt.Javascript Regex: Văn bản đối sánh KHÔNG phải là một phần của thẻ HTML
Ví dụ: Tôi muốn đối sánh "5", "ELT", "SPR", " ", "plo", "Unterricht", " ", "& nbsp" và "plo" từ chuỗi đó:
<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>
Tôi có thể đảm bảo rằng sẽ không có ">" trong thẻ.
Giải pháp tôi thấy được (?<=^|>)[^><]+?(?=<|$)
, nhưng điều đó sẽ không làm việc trong Node.js (có lẽ vì lookaheads? Nó nói "Nhóm không hợp lệ")
Bất kỳ lời đề nghị? (và có, tôi thực sự nghĩ rằng Regex là đúng cách để đi vì html có thể được lồng nhau theo những cách khác và nội dung luôn có cùng thứ tự vì đó là một bảng)
Tôi thích liên kết đến http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – NimChimpsky
Đây có phải là những gì bạn đang tìm kiếm không? http://stackoverflow.com/questions/822452/strip-html-from-text-javascript –
Bạn không thể sử dụng cụm từ thông dụng để phân tích cú pháp HTML (đây là điểm của liên kết @NimChimpsky đã cung cấp cho bạn), bởi vì HTML không phải là thông thường ngôn ngữ. Bất kỳ nỗ lực nào sử dụng cụm từ thông dụng, chỉ để phân tích cú pháp HTML *** sẽ không thành công ***. Bạn không có lựa chọn nào khác ngoài thực sự * phân tích cú pháp * HTML. –