我有一个字符串,<parameter name="Browser" value="chrome" />
。我想将chrome
替换为Firefox
。我的相关Java代码:
l = l.replaceFirst("value=\"*\"", "value=\"" + browser + '"');
将原始字符串转换为
<parameter name="Browser" value="Firefox"chrome" />
。由于chrome"
中的正则表达式与开括号和右括号相匹配,我对replaceFirst
未被删除的方式感到困惑。
答案 0 :(得分:2)
您的正则表达式不正确。 \"*\"
匹配零个或多个"
字符(\"*
),后跟"
。由于c
不是"
,因此不匹配,因此仅包含公开引用。
您应该使用\".*\"
代替(注意添加.
),以匹配两个引号之间的任何字符的零个或多个。
答案 1 :(得分:2)
在第一个正则表达式value=\"*\"
中,\"*\"
匹配0个或更多"
个字符,而不是您想要的任意数量的字符。正确的语法是value=\".*\"
。
您可以在http://regexr.com/上测试一个正则表达式,以便了解正则表达式的工作原理,并使用语法高亮显示。