[英]JavaScript Regular Expression - grouping, one-or-more characters, excluding set character strings
我正在嘗試使用正則表達式來匹配和替換損壞的HTML,但是我對分組,回溯和量詞做了幾個完整的圈。 我正在努力匹配每種情況。
JavaScript,因為此問題是在Web客戶端瀏覽器HTML編輯器中觸發的。
損壞的HTML是特定的-結束LI和結束列表UL或OL之間的任何文本,都不能正確地形成為列表項。
例如,下面的更大示例中的這一部分:
</li>
bbb<strong>bbbb</strong><strong>bbb <span style="text-decoration: underline;"><em>bbbbb</em></span></strong>=0==
</ul>
這是問題可能存在的完整示例:
<ul>
<li>1111</li>
<li>Could be anything here</li>
<li>aaaa</li>
bbb<strong>bbbb</strong><strong>bbb <span style="text-decoration: underline;"><em>bbbbb</em></span></strong>=0==
</ul>
<ol>
<li>more?<li>
<li>echo</li>
</ol>
這就是我打算使用match + replace的HTML外觀。
<ul>
<li>1111</li>
<li>Could be anything here</li>
<li>aaaabbb<strong>bbbb</strong><strong>bbb <span style="text-decoration: underline;"><em>bbbbb</em></span></strong>=0==
</ul>
<ol>
<li>more?<li>
<li>echo</li>
</ol>
以下是一些我嘗試過的表達式,但根據這些表達式(或略有不同),我匹配得太多或不正確嗎?
/<\/li>.*?<\/[ou]l>/mig
/<\/li>([\s\n]*[\w!\.?;,<:>&\\\-\{\}\[\]\(\)~#'"=/]+[\s\n]*)+<\/[ou]l>/mig
/<\/li>([\s\n]*[^\s\n]+[\s\n]*)+<\/[ou]l>/i
搜索了幾天,斷斷續續,沒有運氣..我意識到我可能在問幾百遍以前回答過的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.