java replace 正则表达式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java replace 正则表达式相关的知识,希望对你有一定的参考价值。
有一个很长的字符串:
new Date("123456789"),"aa"="000",new Date("123456789"),"aa"="000",
用replaceAll 替换,要用正则表达式替换,最终为:
“123456789”,"aa"="000",“123456789”,"aa"="000",
即把函数new Date()去掉。
replace方法并不能改变字符串本身的,只是replace方法能返回一个处理后的字符串而已,例如:
String s="hello";
System.out.println(s.replace("h","H"));
System.out.println(s);
输出结果:
Hello
hello
srcString.replaceAll("[\\s()]","_");
\\s表示一个空白符;
[\\s()]表示 空格 左括号 或者 右括号中出现其中任何一个
replaceAll("[\\s()]","_"); 即表示用_替代字符串中出现的空格符、左括号、右括号。 参考技术A 如果没有其他括号,直接replaceAll("new Date(",""); replaceAll(")","")就ok了;
如果要考虑有其他括号的话,判断
Matcher m = Pattern.compile("new Date\\(\"\\d*\"\\)").matcher(str);
while(m.find())
int s = m.start();
int e = m.end();
//获取到了所在首尾位置在对这段字符串进行处理就行了
这样就OK了~~追问
没有其它括号了,但是想用正则表达式
追答正则表达式我不是给了么。。Pattern.compile("new Date\\(\"\\d*\"\\)")
这就是匹配new Date("3123212...")的,或者改成
compile(".*new Date\\(\"\\d*\"\\).*")
就可以匹配包含这个字符串的情况
没有括号就直接用replaceAll("new Date(",""); replaceAll(")","")就OK啊
\s表示一个空白符;
[\s()]表示 空格 左括号 或者 右括号中出现其中任何一个
replaceAll("[\s()]","_"); 即表示用_替代字符串中出现的空格符、左括号、右括号。
请采纳答案,支持我一下。追问
replaceAll("new Date[\\s()]", "");
后面的)还是存在啊。
replace("new Date\(","");
replace("\)","");追问
要用正则
正则表达式的replace不起作用?
我的字符串的:('C01/2015-1$','C01/2015-1$')
然后给他replace(/$/g,"#"); 想要把¥转换成#
可是结果是('C01/2015-1$','C01/2015-1$')#
这是为什么呢、要怎么转换呢
$在正则表达式里表示的是字符串的结尾,所以结果是('C01/2015-1$','C01/2015-1$')#,因为你把字符串结尾替换成#了
正确的应该是replace(/¥g,"#"); 参考技术B $在正则表达式里表示字符串的结尾,前面加一个反斜杠\$就可以表示原字符。本回答被提问者采纳 参考技术C str_replace("要替换的字符","要替换成的字符","字符串")
比如:str_replace("b","d","bb"返回dd
以上是关于java replace 正则表达式的主要内容,如果未能解决你的问题,请参考以下文章