java - 正则表达式替换组

标签 java regex

我想用一些字符替换数字之前的空格,但我无法使用以下正则表达式来做到这一点:

    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/

相关文章:

java - 如何捕获 SQLiteConstraintException 唯一约束失败的列名

java - Android - 保留 headless fragment

c++ - ascii 字符时正则表达式意外结束

python - 如何计算被随机字母包围的特定字符

javascript - 评估正则表达式 ng-pattern 的 AngularJS 问题

java - 使用 intellij IDEA 从 Selenium + JUnit 生成 ANT 结果报告

java - 使用 freets 在 java 中进行语音识别

c++ - 需要一个正则表达式来仅从字符串中提取字母和空格

Java:替换第一个位置上除符号 "+"之外的所有非数字符号

java - 如何将日期对象从时间戳转换为日期而不转换为json中的字符串