关于JAVA正则匹配空白字符的问题
今天遇到一个字符串,怎么匹配空格都不成功!!!
我把空格复制到test.properties文件 显示“\u3000” ,这是什么? 这是全角空格!!!
查了一下 \s 不支持全角
1、"\s"匹配的是哪一种空格?
正则表达式中\s匹配任何空白字符,包括空格、制表符、换页符等等;中文全角空格
\s 并不能匹配中文全角空格。
\s 只能匹配下面六种字符(详见 java.util.regex.Pattern 的 API DOC):
- 半角空格( )
- 水平制表符(\t)
- 竖直制表符
- 回车(\r)
- 换行(\n)
- 换页符(\f)
java代码中的转义 \\s
正则匹配0个或多个空格,我是这样写的 \\s*
正则匹配一个或多个空格,我是这样写的 \\s+
2、如何匹配全角空格
正则可以这么写:"[\\s\\p{Zs}]+" , 注意java代码中的转义。
3、测试
我的测试例子:
package com.test; public class zhengze {
/**
* 替换多个<br>成单个<br>
* @param args
*/
public static void main(String[] args) {
String str1= "...中间省略很多...<br> <br>想到自己煮花生仁汤这么简单~赶紧动手试试吧!<br><br> <br> <br> <br>";
String pattern = "<br>(\\s*<br>)+";
System.out.println("\\s* 替换的结果:");
System.out.println(str1.replaceAll(pattern,"<br>")); String str2= "...中间省略很多...<br> <br>想到自己煮花生仁汤这么简单~赶紧动手试试吧!<br><br> <br> <br> <br>";
String new_pattern = "<br>([\\s\\p{Zs}]*<br>)+";
System.out.println("[\\s\\p{Zs}]* 替换的结果:");
System.out.println(str2.replaceAll(new_pattern,"<br>")); }
}
结果:
\s* 替换的结果:
...中间省略很多...<br> <br>想到自己煮花生仁汤这么简单~赶紧动手试试吧!<br> <br> <br>
[\s\p{Zs}]* 替换的结果:
...中间省略很多...<br>想到自己煮花生仁汤这么简单~赶紧动手试试吧!<br>
关于JAVA正则匹配空白字符的问题的更多相关文章
- 关于JAVA正则匹配空白字符的问题(全角空格与半角空格)
今天遇到一个字符串,怎么匹配空格都不成功!!! 我把空格复制到test.properties文件 显示“\u3000” ,这是什么? 这是全角空格!!! 查了一下 \s 不支持全角 1.& ...
- 通用且常用的Java正则匹配工具,用以检查邮箱名、电话号码、用户密码、邮政编码等合法性
一个通用且常用的Java正则匹配工具,用以检查邮箱名.电话号码.用户密码.邮政编码等合法性. import java.util.regex.Matcher; import java.util.rege ...
- java 正则匹配空格字符串 正则表达式截取字符串
java 正则匹配空格字符串 正则表达式截取字符串 需求:从一堆sql中取出某些特定字符串: 比如配置的sql语句为:"company_code = @cc and project_id = ...
- java正则匹配
java正则提取需要用到Matcher类,下面给出案例示例供参考 需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A876X提取6import java.util.regex.Matche ...
- java:正则匹配Pattern,Matcher
一.正则匹配Pattern,Mather String s = "aa424fsfsd92lfjw2755097"; Pattern p = Pattern.compile(&qu ...
- java正则匹配 指定内容以外的 内容
今天,遇到一个需要 匹配出 指定内容以外的 内容的需求. 乍一看,需求貌视很简单啊,直接上 非贪婪模式的 双向零宽断言(有的资料上也叫 预搜索.预查.环视lookaround): 比如,我要匹配 串内 ...
- java 正则匹配括号对以及其他成对出现的模式
最近,我们有个大调整,为了控制代码的质量,需要使用一些伪代码让业务人员编写应用逻辑(其实这么做完全是处于研发效能的考虑,95%以上的代码不需要特别注意都不会导致系统性风险,),然后通过工具自动生成实际 ...
- Java正则匹配数字
包括5种形式,如测试结果 import java.util.Scanner; import java.util.regex.*; public class Com { public static vo ...
- java正则匹配多个子字符串样例
文本内容: 上海市黄浦区瑞典江苏省无锡市广东省深圳市南山区 我希望分别将字符串中的省份,城市名,城区名匹配出来,如匹配不出来就默认放在省份中. public static HashMap<Str ...
随机推荐
- Hibernate学习笔记三:对象关系映射(一对一,一对多,多对一,多对多)
如需转载,请说明出处:http://www.cnblogs.com/gudu1/p/6895610.html Hibernate通过关系映射来表示数据库中表与表之间的关系,关系映射可以通过两种方式:配 ...
- 关于Cookie安全性设置的那些事
一.标题:关于Cookie安全性设置的那些事 副标:httponly属性和secure属性解析 二.引言 经常有看到XSS跨站脚本攻击窃取cookie案例,修复方案是有httponly.今天写出来倒腾 ...
- es6之Generator
1.Generator函数其实是一个封装了多个内部状态的状态机,执行它会返回一个遍历器对象,然后可以依次遍历Generator中的每一个状态,也就是分段执行,yield是暂停执行的标记,next恢复执 ...
- Fitting Bayesian Linear Mixed Models for continuous and binary data using Stan: A quick tutorial
I want to give a quick tutorial on fitting Linear Mixed Models (hierarchical models) with a full var ...
- ACL配置
标准acl 1-99:抓源地址 扩展acl 100-199:抓源地址,目标地址,具体数据包(如:icmp,tcp,udp,ospf,ip等) 实验内容 1:ACL实现禁止192.168.1.0网段所有 ...
- VR全景智慧城市,开启“上帝视角”体验‘身临其境’
VR全景把不同的场景 分为若干个VR视角点 进入一个视角点,用户便能开启"上帝视角" 转动手机,身临其境地360度转动察看,对场景的全貌和细节一目了然. 人生处处有尴尬 比如大 ...
- TLS1.0和TLS1.1的区别
TLS1.1是对TSL1.0的改进其中包括: 改进"抗抵赖"安全特性上的缺陷 完成协议对椭圆曲线的支持,提出了改进的支持ECC算法的传输层安全协议, 握手协议引入了数字签名及验证机 ...
- Java语言编程注意事项
1.大小写敏感,要注意区分大小写: 2.一般每一句代码写完之后,后面以":"结尾: 3.在代码中,括号的出现一般都是成对的,如:{}.
- maven无法加载本地jar包以及maven项目打包后本地jar包没有打进项目的问题解决办法
1.首先设置依赖项,这样maven就会把该路径下的jar包导入项目引用 <dependency> <groupId>DPSDK-Manager</groupId> ...
- Log POST Data in Nginx
先编译Nginx的echo module: ./configure --add-module=./echo-nginx-module-0.54 make make install 可以在github上 ...