java - java中的正则表达式匹配每个 "line begin"并替换

标签 java regex

我正在尝试制作一个正则表达式来替换行开头加上\t 的行开头。 目标是学习正则表达式以及如何使用匹配器类。 到目前为止,这是我的代码:

        StringBuilder ambe = new StringBuilder();

    Pattern pattern = Pattern.compile("(^\\s*\\w*)");
    Matcher matcher = pattern.matcher(pop.toString());

    ambiente.append("Ambe: [\n");

    ambiente.append(matcher.replaceAll("\t$1"));

    ambiente.append("]\n");

    return ambiente.toString();

在 pop 里面有几个\n 来换行。但是这段代码只是替换了第一行。 有什么建议吗?

最佳答案

您需要使用 multline flag在你的正则表达式中:

Pattern pattern = Pattern.compile("(?m)(^\\s*\\w*)");

Pattern pattern = Pattern.compile("(^\\s*\\w*)", Pattern.MULTILINE);

关于java - java中的正则表达式匹配每个 "line begin"并替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20910952/

相关文章:

java - 有没有办法根据出现次数替换子字符串?

javascript - JS 中的这个正则表达式返回了一个意外的值

java - 在 JBoss Wildfly 8.1 上获取 OracleConnection

java - Spring Servlet 映射困惑

java - Vertx Future 不会等待

java - 在 JDBC 的 QUERY WHERE 子句中指定变量名

regex - hive :当列值由定界符(〜)分隔时,将单个记录扩展为多个记录

Java 正则表达式输出

regex - 为什么 Bash 模式匹配 ?(*[[ :class:]])foobar slow?

java - 无法应用自定义编辑文本的样式