Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个字符串
“棕狐@jumped@ 越过@fence@”
,我希望'@'用' kicked'替换两个之间的所有子字符串,即最终输出应该是:
'@'
kicked
“棕狐一脚踹翻”
我写了以下内容,但无法弄清楚错误:
string.replaceAll("^@.*@$", "kicked");
你不应该使用锚元素^和$. 它们表示整个输入的开头和结尾,而不是单词的开头和结尾。您还应该.用[^@](意思是“除”之外的任何东西@)替换点,以使您的表达更有效率。
^
$
.
[^@]
@
string.replaceAll("@[^@]*@", "kicked");
如果您想避免替换单词中的标记元素,例如,如果您想按原样保留he@ll@o,而不是制作它,您可以在表达式的两端hekikkedo放置单词边界标记:\b
he@ll@o
hekikkedo
\b
string.replaceAll("\\b@[^@]*@\\b", "kicked");