假设我有以下文字:
foo bar baz <!-- USERNAME --> <!-- ACCESS_KEY --> baz bar foo
<!--:USERNAME-->
<!-- eueuteh -->
-DarchetypeVersion=<!-- java-version --> -UserName=<!-- :USERNAME --> -DsauceAccessKey=<!-- ACCESS_KEY -->
我想要做的是用其他文字替换<!-- USERNAME -->
。不幸的是,我创建的正则表达式实际上并没有按预期工作,例如替换整个<!-- java-version --> -UserName=<!-- :USERNAME -->
表达式。前两次发生被正确更换。错误在哪里?
这是我在javascript控制台中测试的内容:
var re = new RegExp('(<!--)(.)*(USERNAME)(.)?(-->)');
答案 0 :(得分:4)
正确的表达式似乎是
/<!--(.(?!-->))*USERNAME.*?-->/g
答案 1 :(得分:1)
我将以下技术用于HTML,XML等类似的东西(尽管在嵌套内容方面这是不好的做法)
(<[^>]*)(USERNAME)([^>]*>)