我想用一些字符替换数字之前的空格,但我无法使用以下正则表达式来做到这一点:
String parentString = " 1.skdhhfsdl 2. hkjkj 3.234hbn,m";
String myregex = "/(\\s)[1-9]+./";
String output = parentString.replaceAll(myregex, "$1ppp");
System.out.println(output);
请帮我解决正则表达式问题。
更新
实现@CertainPerformant和@Wiktor的建议后,我的代码如下所示,
String myregex = "(\\s)[1-9]+.";
String output = parentString.replaceAll(myregex, "\n");
我希望输出像这样
1.skdhhfsdl
2. hkjkj
3.234hbn,m
但是,我目前正在得到
1.skdhhfsdl
hkjkj
234hbn,m
最佳答案
您应该使用正则表达式
\s+([1-9]+\.)
请注意,我捕获了数字部分。当您进行替换时,您通常会捕获要保留的部分。另请注意,我删除了前导斜杠和尾随斜杠,因为 Java 中不需要这些斜杠。 .
也应该被转义,就像我在这里所做的那样。
替换为\n$1
,意思是“新行,然后是组1”。
String parentString = " 1.skdhhfsdl 2. hkjkj 3.234hbn,m";
String myregex = "\\s+([1-9]+\\.)";
String output = parentString.replaceAll(myregex, "\n$1");
System.out.println(output);
关于java - 正则表达式替换组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52924381/