百度
360搜索
搜狗搜索

replaceall,java replaceAll 正则表达式的用法详细介绍

本文目录一览: String 类中replace 和replaceAll方法的区别

乍一看,字面上理解好像replace只替换第一个出现的字符(受javascript的影响),replaceall替换所有的字符,其实大不然,只是替换的用途不一样,简而言之,replace用新串序列替换旧串序列,而replaceall是用新串替换与前面正则表达式相匹配的位置的字符串。
public String replace(char oldChar,char newChar)
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的。 如 果 oldChar 在此 String 对象表示的字符序列中没有出现,则返回对此 String 对象的引用。否则,创建一个新的 String 对象,用来表示与此 String 对象表示的字符序列相等的字符序列,除了每个出现的 oldChar 都被一个 newChar 替换之外。
public String replaceAll(String regex,String replacement)使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的每个子字符串。此方法调用的 str.replaceAll(regex, repl) 形式产生与以下表达式完全相同的结果:
Pattern.compile(regex).matcher(str).replaceAll(repl)
参数:
regex – 用来匹配此字符串的正则表达式
返回:得到的 String
抛出: PatternSyntaxException – 如果正则表达式的语法无效。
实际应用:
public static void main(String[] arg) throws OgnlException {
String s =”sdf\\a\\aa”;
//把s中的反斜杠\ 替换为\\
System.out.println(s);
System.out.println(s.replaceAll(“\\\\”, “\\\\\\\\”));
System.out.println(s.replace(“\\”, “\\\\”));
}
可以看出上面两种都返回相同的替换结果。
这 里的关键是String.replaceAll()是用regular expression 来作为参数的。但是java本身的字符串对于转义符\也有类似的处理。首先,java会把“\\\\”解释成一个字符串(其中包含两个char)——“\ \”这个就是你在JDK的文档里看到的。
接下来,由于replaceAll是以正则表达式作为参数,所以“\\”被解释成一个regex。对于一个regex来说这就代表着一个字符,就是“\”。对后面的那个8个\来说,最终会被解释成“\\”。
换言之,假设String.replaceAll()是以普通字符串,而不是regex作为参数,那么这样写代码: String target = source.replaceAll(‘\\’, ‘\\\\’); 就可以了。
No related posts.
replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:
1)replace的参数是char和CharSequence,既可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;
相同点是都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串,如果只想替换第一次出现的,可以使用
replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的时,只替换第一次出现的字符串;
另外,如果replaceAll()和replaceFirst()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的,即这两者也支持字符串的操作;
还有一点注意:执行了替换操作后,源字符串的内容是没有发生改变的.
举例如下:
String src = new String("ab43a2c43d");
System.out.println(src.replace("3","f"));=>ab4f2c4fd.
System.out.println(src.replace('3','f'));=>ab4f2c4fd.
System.out.println(src.replaceAll("\\d","f"));=>abffafcffd.
System.out.println(src.replaceAll("a","f"));=>fb43fc23d.
System.out.println(src.replaceFirst("\\d,"f"));=>abf32c43d
System.out.println(src.replaceFirst("4","h"));=>abh32c43d.
if (null != nsr.getPhoneNum() && nsr.getPhoneNum().length() > 0) {
nsr.setPhoneNum(nsr.getPhoneNum().replaceAll(" ", "%"));
}
就是替换功能
一、参数不同
replace的参数是char和CharSequence,既可以支持字符的替换,也支持字符串的替换。
replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号。
二、替换结果不同
replace只替换第一个出现的字符(受javascript的影响),replaceall替换所有的字符,简而言之,replace用新串序列替换旧串序列,而replaceall是用新串替换与前面正则表达式相匹配的位置的字符串。
三、用法不同
replaceAll支持正则表达式,replace不支持。
例如:
字符串中多个空格转成一个空格。
public class TestString
{
public static void main(String[] args)
{
String s = " ";
System.out.println("a" + s.replaceAll(" +", " ") + "b");
System.out.println("a" + s.replace(" +", " ") + "b");
}
}

replace和replaceAll的区别

replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:
  1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
  2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;
  相同点是都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串,如果只想替换第一次出现的,可以使用
replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串;
  另外,如果replaceAll()和replaceFirst()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的,即这两者也支持字符串的操作;
  还有一点注意:执行了替换操作后,源字符串的内容是没有发生改变的.
  举例如下:
  String src = new String("ab43a2c43d");
  System.out.println(src.replace("3","f"));=>ab4f2c4fd.
  System.out.println(src.replace('3','f'));=>ab4f2c4fd.
  System.out.println(src.replaceAll("\\d","f"));=>abffafcffd.
  System.out.println(src.replaceAll("a","f"));=>fb43fc23d.
  System.out.println(src.replaceFirst("\\d,"f"));=>abf32c43d
  System.out.println(src.replaceFirst("4","h"));=>abh32c43d.
  如何将字符串中的"\"替换成"\\":
  String msgIn;
  String msgOut;
  msgOut=msgIn.replaceAll("\\\\","\\\\\\\\");
  原因:
  '\'在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( "\\" )
;只打印出一个"\"。但是'\'也是正则表达式中的转义字符(replaceAll
的参数就是正则表达式),需要用两个代表一个。所以:\\\\被java转换成\\,\\又被正则表达式转换成\。
  同样
  CODE: \\\\\\\\
  Java: \\\\
  Regex: \\
  将字符串中的'/'替换成'\'的几种方式:
  msgOut= msgIn.replaceAll("/", "\\\\");
  msgOut= msgIn.replace("/", "\\");
  msgOut= msgIn.replace('/', '\\');
replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:
1) replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
2) replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;
相同点是都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串,如果只想替换第一次出现的,可以使用 replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串;
另外,如果replaceAll()和replaceFirst()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的,即这两者也支持字符串的操作;
replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;
相同点是都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串,如果只想替换第一次出现的,可以使用 replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串;
另外,如果replaceAll()和replaceFirst()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的,即这两者也支持字符串的操作;
还有一点注意:执行了替换操作后,源字符串的内容是没有发生改变的.
1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;
相同点是都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串,如果只想替换第一次出现的,可以使用 replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串;
另外,如果replaceAll()和replaceFirst()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的,即这两者也支持字符串的操作;
还有一点注意:执行了替换操作后,源字符串的内容是没有发生改变的.
举例如下:

String src = new String("ab43a2c43d");
System.out.println(src.replace("3","f"));=>ab4f2c4fd.
System.out.println(src.replace('3','f'));=>ab4f2c4fd.
System.out.println(src.replaceAll("\\d","f"));=>abffafcffd.
System.out.println(src.replaceAll("a","f"));=>fb43fc23d.
System.out.println(src.replaceFirst("\\d,"f"));=>abf32c43d
System.out.println(src.replaceFirst("4","h"));=>abh32c43d.

java replaceAll该怎么用?

replaceAll里面有两个参数第一个参数是想要替换成的结果,第二个参数则是你想要被替换的字符串。把你第二个参数改一下就好了
System.out.println(tmpString.replaceAll("\'", "\\\\'"));第一个\\是指\的,第二个\'是指'的。
String tmpString = "wode'nidetade"; System.out.println(tmpString.replaceAll("\'", "\\\\'"));结果 wode\'nidetade
API如下:
public String replaceAll(String regex, String replacement)regex: 需要匹配替换的正则
replacement: 将匹配的串替换为此字符串
根据API可知,一个String对象即可调用此API
参考以下例子:
String s = new String("I love programming so much!");
System.out.println(s);//I love programming so much!
s = s.replaceAll("m{1,}", "xxxx_xxxx");
System.out.println(s);//I love progrxxxx_xxxxxxxx_xxxxaing so xxxx_xxxxuch!
那么 tmpString = tmpString.replaceAll("\'", "\\\\'");
官方最新API地址docs.oracle.com/javase/8/docs/api/

阅读更多 >>>  字符串转bigdecimal类型,字符串转biginteger

java replaceAll 正则表达式的用法

楼主,你好,可以参考如下代码:
s.replaceAll("121091074_(.*)[.]jpg", "121091074_$1ln.jpg");
希望能帮到你,如果满意,请记得采纳哦~~~
String a = "2016-06-24 10:33:20";
String b = a.replaceAll("[-\\s:]", "");
System.out.println(b);
跟你简单说明下
正则表达式中[]中的内容表示匹配其中任何一个
\s 表示匹配任何不可见的空字符,但是在java中需要在前面再加一个转义字符\才能生效
请采纳,谢谢

JAVA中replaceAll如何将多个空格变一个空格?求助

replaceAll(" +", " "); //把多个空格替换为单个空格," +"表示连续的多个空格

java中怎么把一个字符串里的字母转换成 “”??

如果用到界面的话,textfield有个方法叫echochar可以~~你可以试试
比如TextField tf2=new TextField(“apple”);
tf2.setEchoChar('*');
Char[] array = new Char[1000];
array = s;
for(int i = 0; array[i] != '\0' ; i++)
{
if(('a' <= array[i] && array[i] < 'z') || ('A' <= array[i] && array[i] < 'Z'))
array[i] = '*';
System.out.println(array);
}
s = s.replaceAll("[a-zA-Z]", "*");
s = s.replaceAll("[a-zA-Z]", "*");
替换字符串中的所有字母可以用replaceAll方法,replaceAll支持正则表达式。
方法原型:replaceAll(regex, replacement),replaceAll的参数是regex,即基于规则表达式的替换,比如:可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;
在正则表达式中[a-zA-Z]表示所有字母,包括小写和大写字母。
所以参考代码:
public class Test {public static void main(String[] args) { String s="asdf"; s=s.replaceAll("[a-zA-Z]", "*"); System.out.println(s); }}/*运行结果:**** */

jsp中url中的.replaceAll(+, %20)中的“+”是什么意思?

您好:就是正则表达式的一种,\\出现一次或多次。
就是匹配字符串\\+。有就替换成20%
正则表达式先把第一个'\'当作转义字符,得到"\+"
Java字符串又把"\+"中的'\'当作转义字符,得到'+'
所以这条语句是把字符串中所有的'+'替换成'%20',在URL中%20代表空格
比如在网页输入框中输入了abcd+efg,提交表单的时候将其替换为abcd%20efg

jsp 反斜杠 替换

  jsp中反斜杠替换用replaceAll方法:
  正确的替换写法:
String str1 = str1.replaceAll("\\\\", "\\\\\\\\");
用法说明:
java.lang.String.replaceAll() 方法给定的替换此字符串匹配给定的正则表达式替换每个指定的字符串。
lzj203355 - 总监 九级
正解
java replaceAll() 方法要用 4 个反斜杠,表示一个反斜杠
例如 str1="aa\bbb"; str2="aa'bbb";
要想替换成 str1="aa\\bbb";str2="aa\'bbb";
必须这样替换:
str1 = str1.replaceAll("\\\\", "\\\\\\\\");
str2 = str2.replaceAll("'", "\\\\'");
原因如下:
String 的 replaceAll() 方法,实际是采用正则表达式的规则去匹配的,
\\\\ ,java解析为\\交给正则表达式, 正则表达式再经过一次转换,把\\转换成为\
也就是java里面要用正则来表示一个\. 必须写成4个\
如果要表示\\,那就要写8个\
所以如果写成: str1 = str1.replaceAll("\\", "\\\\");
就会报正则表达式的错误。

JAVA 正则替换 replaceAll 问题

这个貌似So Easy噢....System.out.println(str.replaceAll("\\[[\\s\\S]+\'\\]", "aa"));
需要转义字符,.在正则表达式里面代表任何字符,修改
a.replaceAll("\\.", "")
就可以了

去除字符串中的空格用什么函数

Replace函数好。
Replace (Expression, Find, ReplaceWith [, Start] [, Count] [, Compare])这样就可以把中间的空格给取消。如果你只需要取消两边的空格,用Trim()就可以了。
Text=Replace(Text," ","") 这样就可以了
JAVA中去掉空格
1. String.trim()
trim()是去掉首尾空格
2.str.replace(" ", ""); 去掉所有空格,包括首尾、中间
复制代码 代码如下:String str = " hell o ";
String str2 = str.replaceAll(" ", "");
System.out.println(str2);
3.或者replaceAll(" +",""); 去掉所有空格
4.str = .replaceAll("\\s*", "");
可以替换大部分空白字符, 不限于空格
\s 可以匹配空格、制表符、换页符等空白字符的其中任意一个 您可能感兴趣的文章:java去除字符串中的空格、回车、换行符、制表符的小例子

网站数据信息

"replaceall,java replaceAll 正则表达式的用法"浏览人数已经达到19次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:replaceall,java replaceAll 正则表达式的用法的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!