替换。(点)两个元素之间的内部数字Java
我有这个字符串:替换。(点)两个元素之间的内部数字Java,java,Java,我有这个字符串: String str = "<p>23.5</p>"; String str=“23.5”; 我只想在元素中替换逗号的点。我需要的输出是: <p>23,5</p> 23,5 我想不出来,我有这个: str = str.replaceAll("(?<=<p>)\\.(?=</p>)", ","); str=str.replaceAll
String str = "<p>23.5</p>";
String str=“23.5”;
我只想在元素中替换逗号的点。我需要的输出是:
<p>23,5</p>
23,5
我想不出来,我有这个:
str = str.replaceAll("(?<=<p>)\\.(?=</p>)", ",");
str=str.replaceAll((?您可以使用捕获组+转义/
:
str = str.replaceAll("(?<=<p>)(\\d*)\\.(\\d+)(?=<\\/p>)", "$1,$2");
下面的正则表达式将匹配数字字符之间的点字符
(?<=\d)\.(?=\d)
你的正则表达式看起来比你的示例字符串复杂得多。
-标记可以包含属性,还是总是值
?那str.replaceAll(“\\”,“,”);
)呢?你忘了在
中转义//code>。我不能全部替换,因为它是一个长字符串,名称带有。(点)我必须保留。我只需要替换。例如,在两个标记中。在本例中,只有一个,但我有3个具有不同名称的十进制标记values@Smutje它总是一个带。(点)的十进制值,我需要将它改为,(逗号)。这个例子很简单,但它是一个字符串中的长XML。Si我想在我拥有的几个标记中用点替换逗号。很漂亮,谢谢你。Spasibo)).我想我把自己弄得太复杂了,更简单的方法是把我的箱子里所有带点的数字都换掉。谢谢again@AlexDanilov不客气)我犯了一个错误-它允许分数周围没有任何数字,因此会替换所有分数。您是否有像“.5”或“1”这样的数字。“?事实上是的,我有,只是注意到它实际上。我有一部分是r2
(?<=\d)\.(?=\d)
public static void main(String args[]) {
String regex = "(?<=\\d)\\.(?=\\d)";
String str = "<p>23.5</p>";
String str2 = "Mr. John <p>23.5</p> Hello";
String str3 = "Mr. John <p>23.5</p> Hello 12.2324";
System.out.println(str.replaceAll(regex, ",")); // <p>23,5</p>
System.out.println(str2.replaceAll(regex, ",")); // Mr. John <p>23,5</p> Hello
System.out.println(str3.replaceAll(regex, ",")); // Mr. John <p>23,5</p> Hello 12,2324
}