URL为 http://192.168.1.1:8080/resources/电话.xls
如果使用 URLEncoder.encode 将会把冒号等一块给替换了
http%3A%2F%2F192.168.1.1%3A8080%2Fresources%2F%E7%94%B5%E8%AF%9D.xls
这并不是我们需要的,我们只希望替换编码里面中文的部分,这里给出了解决方法,很简单
package log;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 正则替换字符串里面的汉字部分。
*
* @author 赵学庆 www.java2000.net
*/
public class URLEncoderHZ {
public static void main(String[] args) throws Exception {
String str = "http://192.168.1.1:8080/resources/电话.xls";
System.out.println(encode(str, "UTF-8"));
}
private static String zhPattern = "[\u4e00-\u9fa5]+";
/**
* 替换字符串卷
*
* @param str 被替换的字符串
* @param charset 字符集
* @return 替换好的
* @throws UnsupportedEncodingException 不支持的字符集
*/
public static String encode(String str, String charset) throws UnsupportedEncodingException {
Pattern p = Pattern.compile(zhPattern);
Matcher m = p.matcher(str);
StringBuffer b = new StringBuffer();
while (m.find()) {
m.appendReplacement(b, URLEncoder.encode(m.group(0), charset));
}
m.appendTail(b);
return b.toString();
}
}
分享到:
相关推荐
其中包括5个类,这5个类的代码基本概括了java正则表达式替换String的多种情况,比如获取某个文件路径中盘符/后边的部分内容,提取"<title>XXXX</title>"中的文字XXXX,用正则表达式获取指定字符串内容中的指定内容,...
java正则表达式替换字符串
给写了2个方法,一个是直接截取单个需要的字符串,比如字符串string a="ab123456",我只需要提取3,那么就是单独截取就可以了,从2开始到4结束就行。 第二个是把所有的符合条件的字符串都截取出来,提取出来,比如...
10.28 再看正则表达式替换字符串10.28 再看正则表达式替换字符串
根据java正则表达式生成一个随机的字符串,具体可以去一下网站看:https://code.google.com/p/xeger/
不影响标签属性的简易正则替换html字符串中的文字(原理为使用正则取出html中><之间的内容 然后使用循环从其中匹配对应的内容进行替换)
EditPlus正则表达式替换字符串详解.txt,经过搜索总结而成,很全面的哦。
具体代码如下所示: /* 定义替换对象键值 */ var setReferArgs = function(){ .../* 替换URL的参数 */ var replaceUrlParams = function(url){ var actualUrl = ""; var referArgs = setReferArgs(); for(var ke
isMobileSimple : 验证手机号(简单) isMobileExact : 验证手机号(精确) isTel : 验证电话号码 isIDCard15 : 验证身份证号码15位 isIDCard18 : 验证身份证号码18位 ...getReplaceAll : 替换所有正则匹配的部分
主要介绍了mysql基于正则实现模糊替换字符串的方法,结合具体实例对比分析了使用正则实现mysql字符串替换的注意事项与相关操作技巧,需要的朋友可以参考下
Java根据正则表达式生成字符串,包括了Xeger和automaton
VBA正则提取A字符串之后B字符串之前中间的内容.txt
使用正则表达式拆分字符串,程序完全可以运行,方便大家开发和调试
execall - 发现多个正则表达式匹配的字符串
JavaScript正则表达式替换字符串中图片地址(img src)的方法.docx
将已知字符串的符合一定规则(指定正则)的子字符串取出(步骤笔记)
替换 的功能是查找字符串中符合正则表达式的文本,并用相应的字符串替换; 分割 的功能是使用正则表达式对字符串进行分割。 正则表达式检索与替换 正则表达式的匹配方法 match()尝试从字符串的起始位置匹配一个模式...
1.使用replace替换字符串的某些内容,使用的是正则+ replace, 2. 前提是替换字符串里面的某些标签,也可以是多个标签,这个是在react里面的,自己可以参考然后可以动态替换成其他标签,例如li,ul都是可以的 3.字符...
包含了常用正则表达式的使用,验证,正则表达式替换字符串,判断字符串是否为正整数,判断输入的字符串是否全是英文、中文....