【发布时间】:2014-02-01 22:02:15
【问题描述】:
假设我有以下文字:
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 次或更多次,它匹配java-version --> -UserName=<!-- :。 -
这是你想要做的吗? regex101.com/r/lI8cV8
-
@VasiliSyrakis 请发表您的评论作为答案,因为现在它是唯一一个实际工作的 :) 谢谢!
标签: javascript regex string-matching