[英]java String.replaceAll regex question
我有一个包含以下文本的字符串
String my_string = "hello world. it's cold out brrrrrr! br br";
我想将每个孤立的 br替换为<br />
问题是我想避免将字符串转换为
"hello world. it's cold out <br />rrrrr! <br /> <br />";
我想做的是将字符串(使用replaceAll)转换为
"hello world. it's cold out brrrrrr! <br /> <br />";
我敢肯定这很简单,但是我的正则表达式不正确。
my_string.replaceAll("\\sbr\\s|\\sbr$", "<br />");
我的正则表达式应该找到“空白”,“ b”,“ r”,“空白”或“空白”,“ b”,“ r”,“行尾”
但它错过了我字符串中的最后一个“ br”
"hello world. it's cold out brrrrrr!<br />br"
我究竟做错了什么?? TKS!
采用
my_string.replaceAll("\\bbr\\b", "<br />");
您的正则表达式不起作用,因为
␣br␣br
^
模式\\sbr\\s
将消耗整个␣br␣
,剩下的
<br />br
^
现在此br
没有匹配\\sbr$
空格,因此将被忽略。
另一方面, \\b
表示单词边界,它是零宽度的断言,即它不会消耗任何字符。 因此,将保留空格,并且将匹配所有隔离的br
。
"hello world. it's cold out brrrrrr!<br />br"
最后一个“ br”前面没有空格。 应该发生什么事?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.