Java中String.replace()时的正则表达式不会写了, :(

来源:百度知道 编辑:UC知道 时间:2024/06/30 23:56:58
现在有这样的一个字符串:
String srcString = "Por Ti Baby (Featuring Flex)";

我想通过调用replace()方法把这里的空格和"( )"都替换为"_",

可忘了正则表达式怎么写了,只能很采取那种很笨的方法,连调三次replace()方法.

srcString.replaceAll("[\s()]","_");

\s表示一个空白符;
[\s()]表示 空格 左括号 或者 右括号中出现其中任何一个

replaceAll("[\s()]","_"); 即表示用_替代字符串中出现的空格符、左括号、右括号。

replaceAll("[\\s()]","_");
‘\’斜线本身需要转义。所以空格的表示是\\s

replace("(\(|\)|\s+)","_");

不是这样用的,可以参考下以下用法:
String src= "aaabbbcccdddaaa";
String newStr = src.replace("aaa","eee");

输出结果为:eeebbbcccdddaaa。

String src= "aaabbbcccdddaaa";
String newStr = src.replaceAll("aaa","eee");
输出结果为:eeebbbcccdddeee。
备注:replace是只替换第一个符合的,replaceAll是替换的所有符合条件的。