提供一个简单的示例可能会产生我不要求的解决方案,并且替代解决方案将不起作用,因为我有更复杂的模式需要解决。
假设您有一个字符串 123.321
这个字符串可以用正则表达式表示为[0-9]*\\.[0-9]*
我想做的是替换“。”用“,”得到123,321。
因此,我希望正则表达式模式 [0-9]*\\.[0-9]*
成为正则表达式模式 [0-9]*,[0- 9]*
是否可以指示两个正则表达式模式并使与第一个模式匹配的字符串成为与第二个模式匹配的字符串?
我该怎么做?
最简单的解决方案是什么?
最佳答案
您可以使用 \\d*
来匹配可选数字,并将数字匹配与 ()
分组。然后使用String.replaceAll(String, String)
喜欢
String str = "123.321";
if (str.matches("\\d*\\.\\d*")) {
str = str.replaceAll("(\\d*)\\.(\\d*)", "$1,$2");
}
System.out.println(str);
输出是(根据要求)
123,321
关于java - 如何使用一种正则表达式模式使字符串成为 Java 中的另一种正则表达式模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33458284/