[英]Matching pattern that is part of a previous match
我正在嘗試構造一個匹配不正確放置的li標簽的表達式。 在大多數情況下,它運行良好,除了以下事實:我需要匹配的事件之一是先前匹配項的一部分。
這是我的表情:
/(<li>.*?)(<\/li>)(.*?)(<br><(li|\/ul)>)/gi
我嘗試匹配的文本如下:
<ul><br><li> text before invalid closing tag</li> remaining text<br><li> this should also be matched</li> but isn't<br><li> text before invalid closing tag</li> remaining text<br></ul><br>
這里應該有3場比賽,但我只有2場。 您可以在下面的鏈接上對此進行測試,但中間部分不匹配。 我不確定正確的方法來匹配先前匹配的文本。
實際上,我可以通過將模式匹配到下一個打開的li或關閉的ul標簽來找到解決方案。 這樣可以避免比賽重疊,並按需要對結果進行分組。
/(<li>.*?)(<\/li>)(.*?)<br>(?=<(li|\/ul)>)/gi
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.