`
world123
  • 浏览: 4459 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

URL正则

阅读更多
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();
  }
}



运行结果

http://192.168.1.1:8080/resources/%E7%94%B5%E8%AF%9D.xls
分享到:
评论

相关推荐

    url正则表达式

    在本主题中,我们重点关注“url正则表达式”,它主要用于验证、提取或操作URL(统一资源定位符)。URL是互联网上资源的唯一地址,遵循特定的格式标准。 博文链接给出的是一个ITEYE上的博客,由pengwenchao分享的...

    数据库url正则表达式校验

    该文档是针对mysql和oracle数据库url地址的校验问题。

    JS验证URL正则表达式.txt

    ### 一、JS验证URL正则表达式 #### 1. 正则表达式的结构分析 在给定的部分内容中,定义了一个JavaScript函数`functionIsURL(str_url)`,该函数利用正则表达式来验证传入的字符串是否为一个合法的URL。 ##### 正则...

    在Django中URL正则表达式匹配的方法

    Django框架中的URL分发采用正则表达式匹配来进行,以下是正则表达式的基本规则: 官方演示代码: from django.conf.urls import url from . import views urlpatterns = [ url(r'^articles/2003/$', views....

    正则表达式验证url

    正则表达式验证url 验证url不能带 页面 如www.baidu.com/3.html 可以是 ip地址

    JS正则表达式替换url参数的方法

    具体代码如下所示: /* 定义替换对象键值 */ var setReferArgs = function(){ var referArgs = new ...var replaceUrlParams = function(url){ var actualUrl = ""; var referArgs = setReferArgs(); for(var ke

    C#中使用正则表达式验证Email格式、IP地址格式和URL网址格式

    本文将详细探讨如何使用C#中的正则表达式来验证电子邮件(Email)、IP地址以及URL网址的格式。 ### 一、验证Email格式 电子邮件地址是互联网上最常用的联系方式之一,其格式通常包含用户名部分和域名部分,两者...

    正则使用经典

    本篇文章将深入探讨“正则使用经典”,特别是关于URL正则和图片正则的相关知识点。 首先,让我们来看看URL正则。URL(Uniform Resource Locator)是互联网上的资源地址,通常包括协议类型(如http或https)、域名、...

    java 银行卡 验证 正则表达式使用

    一个基本的URL正则表达式如下: ```java String regexURL = "^(http|https)://[a-zA-Z0-9\\-\\.]+\\.[a-zA-Z]{2,3}(\\/\\S*)?$"; ``` 这个表达式能匹配大多数标准格式的URL。 在实际应用中,这些正则表达式可以...

    将内容中的符合url格式的字符串转换为超链接(JAVA版)

    本教程将详细讲解如何使用Java实现这一功能,主要涉及URL正则表达式匹配和字符串处理技术。 首先,我们需要理解URL的基本结构。一个标准的URL通常包含协议(如http或https)、主机名、路径、查询参数等部分。例如,...

    提取URL,正则表达式 - C# - 开发者参考网

    提取URL,正则表达式 - C# - 开发者参考网提取URL,正则表达式 - C# - 开发者参考网提取URL,正则表达式 - C# - 开发者参考网提取URL,正则表达式 - C# - 开发者参考网提取URL,正则表达式 - C# - 开发者参考网提取URL,...

    正则表达式学习和使用大全.rar

    包含常用正则,正则学习基本知识,采集使用正则(URL正则,图片正则等)

    正则表达式列举 代码 项目中直接使用

    正则表达式是一种强大的文本处理工具,用于模式匹配、搜索、替换等操作,在软件开发、数据处理、网络爬虫等领域有着广泛的应用。在项目中直接使用正则表达式可以极大地提高代码的效率和可读性。以下是对给定文件中的...

    正则表达式自动生成器.7z

    你还在为写正则表达式发愁嘛,现在只需要小手一抖,自动生成匹配方法。 目前支持市场常用语言

    根据url自动生成对应的正则表达式

    3.可选参数s的作用:指定从第几个'/'(不计算'://'中的'/')之前的字符串作为前缀,之后的正则化 默认为1 如:https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/123123 python rule_url_py2 ...

    常用的正则表达式

    一个基本的URL正则表达式可能是: `(http|https)://([\w.]+)\/*([\w./]*)?` 它可以匹配大多数URL,但不能处理所有特殊字符或复杂的URL结构。 5. **匹配日期格式** 常见的日期格式有YYYY-MM-DD、MM/DD/YYYY等。...

    js匹配网址url的正则表达式集合

    #### URL正则表达式示例 1. **方法一**:使用正则表达式匹配包含http、ftp、https协议头的URL,支持可选的端口号、路径和查询参数。示例代码中的正则表达式能够匹配多种标准URL格式。 ```javascript function ...

    Java正则表达式的使用实例

    例如,一个简单的URL正则表达式可以是:`^https?://[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$`。 - 电话号码的正则表达式因国家/地区而异,例如,美国电话号码的一般格式是`(\\d{3})-(\\d{3})-(\\d{4})`。 3. **使用示例** ...

Global site tag (gtag.js) - Google Analytics