<正则吃饺子> :关于 Matcher 的 replaceAll 的简单使用

在线文档地址http://tool.oschina.net/apidocs/apidoc?api=jdk-zh

replaceAll

public String replaceAll(String replacement)
替换模式与给定替换字符串相匹配的输入序列的每个子序列。

此方法首先重置匹配器。然后,它将扫描输入序列以查找该模式的匹配项。不属于任何匹配的字符被直接添加到结果字符串;在结果中每个匹配都将被替换字符串所替换。替换字符串可能包含到已捕获子序列的引用,如在 appendReplacement 方法中一样。

注意,在替换字符串中使用反斜线 (\) 和美元符号 ($) 可能导致与作为字面值替换字符串时所产生的结果不同。美元符号可视为到如上所述已捕获子序列的引用,反斜线可用于转义替换字符串中的字面值字符。

在给定正则表达式 a*b、输入 "aabfooaabfooabfoob" 和替换字符串 "-" 的情况下,为该表达式针对匹配器调用此方法将产生字符串 "-foo-foo-foo-"

调用此方法将更改此匹配器的状态。如果在将来的匹配操作中使用该匹配器,则应该首先重置它。

 

参数:
replacement - 替换字符串。
返回:
通过使用替换字符串替换每个匹配子序列,并在需要时取代已捕获子序列所构造的字符串。
public void test2() {
    String a = "电信20元";
    String regEx = "[^0-9]";
    Pattern p = Pattern.compile(regEx);
    Matcher m = p.matcher(a);
    System.out.println(m.replaceAll("-"));
        
    //打印结果 :  --20-
}

:只保留了原字符串中匹配正则部分的 + 需要替换为新的字符的部分,如上例中的  --20-   ,与之对应。

posted @ 2017-08-17 08:50  正则吃饺子  阅读(6407)  评论(0编辑  收藏  举报