JDK原文注释:
String java.lang.String.replaceAll(String regex, String replacement)
replaceAll
public String replaceAll(String regex, String replacement)
-
Replaces each substring of this string that matches the given
regular expressionwith the given replacement.
An invocation of this method of the form str.replaceAll(regex, repl)yields exactly the same result as the expression
Pattern
.compile
( regex ).matcher
( str ).replaceAll
( repl )Note that backslashes (\) and dollar signs ($) in the replacement string may cause the results to be different than if it were being treated as a literal replacement string; see
Matcher.replaceAll
. UseMatcher.quoteReplacement(java.lang.String)
to suppress the special meaning of these characters, if desired. -
-
Parameters:
-
regex
- the regular expression to which this string is to be matched -
replacement
- the string to be substituted for each match
Returns:
- The resulting String Throws:
-
PatternSyntaxException
- if the regular expression's syntax is invalid
Since:
- 1.4 See Also:
-
Pattern
-
其实,大体功能就是JAVA中的replaceAll(String regex, String replacement)方法,可以通过指定第一个参数“regex”——正则表达式或者需要替换的子字符串,第二个参数则是用于替换原串或与正则匹配的原串的字符串。
C#中,string 类 有Replace(string oldValue,string newValue)方法,可以与上述JAVA中的replaceAlll()方法中的“非正则匹配替换”功能相对应。
那么C#中如何实现“非正则匹配替换”功能呢?是否真的没得折腾了呢,哈哈,要相信在JAVA中有的,C#中大部分都能找到“映射”的。
肺话不多说,看看如何实现吧!
C#中的正则类Regex有个静态方法——“Replace(sting input,string pattern,string replacement)”可以实现上述功能。
C#源码:
string line = " 1 DA 232";
line=Regex.Replace(line.Trim(),"\\s+", " ");
JAVA源码:
String line = " 1 DA 232";
line = line.trim().replaceAll("\\s+", " ");
上述两种源码的最终实现的功能是一致的。
总结:JAVA中的replaceAll(String regex, String replacement)方法的功能,在C#中可以通过如下方式实现
A、string 类 有Replace(string oldValue,string newValue)方法,可以与上述JAVA中的replaceAlll()方法中的“非正则匹配替换”功能相对应。
B、正则类Regex有个静态方法Replace(sting input,string pattern,string replacement)”,可以实现上述“正则匹配替换”功能。