Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换。(点)两个元素之间的内部数字Java_Java - Fatal编程技术网

替换。(点)两个元素之间的内部数字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
}