我需要在Java String中找到一个模式并替换另一个字符串。
我有两种字符串
1- Lorem ipsum dolor坐下来,它。整数pos laciniA。 2. Lorem ipsum dolorelit。 Curabitur pretium maL。
我需要做的是找到一个"。"在它之前没有数字并由";"
替换我发现正则表达式就像str.replaceAll(' \。',' \\;');
这种模式的问题在于它找到String" 2。"它改变了" 2;"
另一个解决方案是str.replaceAll(' [a-zAz] \。',' \\;');但它取代了之后的最后一个字母"。"。
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
我需要做的是找到一个"。"在它之前没有数字并由";"
替换
您可以利用负面的背后隐藏:
String result = str.replaceAll("(?<!\\d)\\.", ";");
请参阅regex demo
<强>详情:
(?<!\d)
- 如果当前位置之前有数字\.
- 匹配文字.