java用正则表达式判定特殊字符是否,存在就替换的问题?
发布网友
发布时间:2022-05-06 08:39
我来回答
共3个回答
热心网友
时间:2022-05-17 19:49
String的replaceAll方法可以使用正则表达式进行搜索并替换,但不改变原字符串,如果需要改变原字符串,则需要用赋值语句:
ss=ss.replaceAll("正则表达式","替换内容");
比如将"aabbcc[{dd}]eeff[{gg}]hhiijjkkll[{mmnn}]oopp"里的[{等特殊符号去掉:
ss=ss.replaceAll("\W","");
热心网友
时间:2022-05-17 21:07
至少有两种正则表达式的方法:
1、直接调用String类的replaceAll(String regex, String replacement)方法
代码:
String ss = "aabbcc[{dd}]eeff[{gg}]hhiijjkkll[{mmnn}]oopp";
ss.replaceAll("[\\[\\]\\{\\}]", "");//返回结果,可打印或返回
优点:简单
缺点:不具有通用性,需求变动则不适用,例如[{dd}]替换成DD
2、通过匹配规则来截取字符串
代码:
String ss = "aabbcc[{dd}]eeff[{gg}]hhiijjkkll[{mmnn}]oopp";
//正则表达式,表示由非[、]、{、}的任意字符构成
String tmp = "[^\\[^\\{^\\]^\\}.]";
//正则表达式,由5组构成第一组是普通字符串,第二组是"[{"字符串,第三组是普通字符串,第四组是"}]"字符串,第五组是普通字符串
Pattern pattern = Pattern.compile("(" + tmp + "*)(\\[\\{)(" + tmp + "*)(\\}\\])(" + tmp + "*)");
Matcher matcher = pattern.matcher(ss);
StringBuffer result = new StringBuffer();
while(matcher.find()) {
result.append(matcher.group(1) + matcher.group(3) + matcher.group(5));
}
//result就是最终结果。
优点:具有一定的通用性,可自己定制需要的字符串,新字符串可以由原字符串的部分组成,也可与其他字符拼装,能更好满足可重用性,例如需求变更成[{dd}]替换成DD,代码只需将result.append(matcher.group(1)+matcher.group(3)+matcher.group(5));换成result.append(matcher.group(1)+matcher.group(3).toUpperCase()+matcher.group(5));就能完成
缺点:代码较长
PS:StringBuffer可转化成String再返回
热心网友
时间:2022-05-17 22:42
[\[\{\}\]]+
在java中
String ss = ss.replaceAll("[\\[\\{\\}\\]]+", "");
java用正则表达式判定特殊字符是否,存在就替换的问题?
String的replaceAll方法可以使用正则表达式进行搜索并替换,但不改变原字符串,如果需要改变原字符串,则需要用赋值语句:ss=ss.replaceAll("正则表达式","替换内容");比如将"aabbcc[{dd}]eeff[{gg}]hhiijjkkll[{mmnn}]oopp"里的[{等特殊符号去掉:ss=ss.replaceAll("\W","");...
java用正则表达式判定特殊字符是否,存在就替换的问题?
String ss = "aabbcc[{dd}]eeff[{gg}]hhiijjkkll[{mmnn}]oopp";System.out.println(ss.replaceAll("[\\[{,}\\]]*", ""));使用的是正则表达式。其中中括号为关键字,意思是符合中括号里面的内容,因此要想去掉原有string中的[和],则不需加上\进行特殊标识,指定为字符而非正则表达式元素...
java怎么判断如果时间中包含T那么就替换
正则表达式正则表达是Java中比较矛盾的知识点,因为使用起来可以很简单也可以相当地有难度,但是对于字符串操作来说应用得当则事半功倍,字符串查找,搜索,匹配,替换等等,正则表达式无所不能。而所谓正则表达式本质就是一个字符串(这个字符串按照一定的语法和规范被构造出来作为限定条件),其主要参与者—...
java 如何替换字符串中的特殊字符标签和空格,字符串是这样的:abcde...
是替换所有字符还是只替换标签和空格。public class RegTest {public static void main(String[] args) {String str1="abcde ";System.out.println(str1.replaceAll("(<(\\/)?p>)|\\s", ""));}}就可以了。 本回答由提问者推荐 举报| 答案纠错 | 评论(2) 1 2 laogao3232 采纳率:37% 来自团队...
java正则表达式如何判断字符串中是否含有特殊字符
public class Test2 { public static void main(String[] args){ String s = "123asdqwe__123 rew-trafgds";if(s.replaceAll("[a-z]*[A-Z]*\\d*-*_*\\s*", "").length()==0)System.out.println("input correct");else System.out.println("input incorrect");} } ...
java如何判断字符是否含有特殊字符?
一般都是使用正则表达式,如下代码:\x0d\x0apublic static final String DEFAULT_QUERY_REGEX = "[!$^&*+=|{}';'\",/?~!#¥%??&*——|{}【】‘;:”“'。,、?]"; \x0d\x0a \x0d\x0a/** \x0d\x0a * 判断查询参数中是否以特殊字符开头,如果以特殊字符开头则...
java 如何替换字符串中的特殊字符标签和空格,字符串是这样的:abcde...
你想怎么替换?是替换所有字符还是只替换标签和空格。public class RegTest { public static void main(String[] args) { String str1="abcde ";System.out.println(str1.replaceAll("(<(\\/)?p>)|\\s", ""));} } 就可以了。
JAVA 替换特殊字符 的 正则表达式
JAVA 替换特殊字符 的 正则表达式代码如下:import java.util.regex.*;// 表达式对象Pattern p = Pattern.compile("[\\\'\\*\\~]");// 创建 Matcher 对象Matcher m = p.matcher("String str = \"t\'e*s~t\"; ");// 替换String newstring = m.replaceAll("[$0]");效果如下:正则...
Java 字符串替换
Java中字符串替换操作可以通过正则表达式实现,如在给定的示例代码中,通过`Pattern.compile("[^>><=]")`创建一个匹配非大于、小于或等于号的正则表达式模式,然后使用`Matcher`的`find()`方法寻找匹配项,再通过`replaceAll()`方法将其替换为空字符串。在`RepTest`类的`main`方法中,首先定义了一个...
java正则表达式取值并保持格式替换
public static void main(String[] args){ final String s="t1:\"1:0\",t2:\"2:0\",t3:\"2:1\",t4:\"2:2\"",d;Pattern p=Pattern.compile("(\\d):(\\d)");Matcherm=p.matcher(s);//System.out.println(s);d=m.replaceAll("s$1$2");System.out.println(d);} } ...