是否可以替换一个正则表达式中两个子字符串之间的所有匹配项?
我的理由是我想在 li 标记之后注入HTML,但只在myList中注入。
在:
<ul class="myList">
<li>List item</li>
<li>List item</li>
</ul>
之后(...将是注入的标记):
<ul class="myList">
<li>...List item</li>
<li>...List item</li>
</ul>
任何帮助都会很棒,谢谢。
答案 0 :(得分:1)
我的情况是我想在li标签之后注入HTML,但只在myList中注入。
除了可以轻松编写“快速,hacky”脚本以完成工作的琐碎案例之外,you should never use regular expressions to parse HTML.
在这种情况下,“快速,黑客”的脚本可以是例如搜索:
<ul class="myList">.*<li>([^<]*)</li>(?=.*</ul>)
(注意:这可能需要是多行搜索;如果没有此选项,请将.*
替换为[\s\S]*
。)
...然后替换第一个匹配组的值(可能由$1
或\1
表示,具体取决于您的操作方式。)
但是,根据我上面的链接,我想强调这不是一个完美的答案。用正则表达式完全解析HTML几乎是不可能的。
要“正确”执行此操作,您必须使用XML解析器。