JAVA 替换特殊字符 的 正则表达式
比如Stringstr="t'e*s~t";如何替换成:Stringstr="t[']e[*]s[~]t";就是给‘*~外部添加大括号,有就替换没就不管...
比如
String str = "t'e*s~t";
如何替换成:
String str = "t[']e[*]s[~]t";
就是 给 ‘ * ~ 外部添加大括号,
有就替换没就不管 展开
String str = "t'e*s~t";
如何替换成:
String str = "t[']e[*]s[~]t";
就是 给 ‘ * ~ 外部添加大括号,
有就替换没就不管 展开
5个回答
展开全部
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]");
效果如下:
正则参考 http://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F
展开全部
package com.cnsuning.com;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringTest {
public static void main(String[] args) {
String test = "t'e*s~t";
String regEx = "[^\\w]";
Pattern pat = Pattern.compile(regEx);
Matcher mat = pat.matcher(test);
ArrayList<Integer> charIndex = new ArrayList<Integer>();
while (mat.find()) {
int index = mat.start();
charIndex.add(index);
}
System.out.println(charIndex);
String result = "";
int count = 0;
for (int i = 0; i < test.length(); i++) {
if (i==charIndex.get(count)) {
result += "["+test.charAt(i)+"]";
if (count<charIndex.size()-1) {
count++;
}
}else {
result += test.charAt(i);
}
}
System.out.println(result);
}
}
可以给所有非单词字符的两边加上[],不需要指定是 ‘ # *这些字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个不用正则
String str = "t'e*s~t";
str=str.replaceAll("'", "[']").replaceAll("\\*", "[*]").replaceAll("~", "[~]");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
str = str.replaceAll("'", "[']").replaceAll("~", "[~]").replaceAll("\\*", "[\\*]");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
baiyonghudu572 +1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询