关于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 ...
随机推荐
- 【Netty】Netty之ByteBuf
一.前言 前面已经学习了Netty中传输部分,现在接着学习Netty中的ByteBuf. 二.ByteBuf 2.1 ByteBuf API 在网络上传输的数据形式为Byte,Java NIO提供了B ...
- Nodejs进阶:核心模块Buffer常用API使用总结
本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 Buffer是node的核心模块,开发者可以利用它来处 ...
- SmartCoder每日站立会议05
1.站立会议内容 经过四天的努力,我们的微信小程序有了很大的进展,首页的设计定了方案,API接地图正在试着把消息展示到其中,争取把地图信息做到直观形象. 站立会议照片: 2.任务展板 3.燃尽图
- python+unittest框架整理(一点点学习前辈们的封装思路,一点点成长。。。)
预期框架整理目标: 1.单个用例维护在单个.py文件中可单个执行,也可批量生成组件批量执行 2.对定位参数,定位方法,业务功能脚本,用例脚本,用例批量执行脚本,常用常量进行分层独立,各自维护在单独的. ...
- Java 命令后台运行jar包
nohup java -jar XX.jar >temp.text & nohup 客户端关闭,后台继续运行 & 客户端关闭,后台停止运行 temp.text 是存控制台文件 ...
- Vulkan Tutorial 07 Window surface
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 到目前为止,我们了解到Vulkan是一个与平台特性无关联的API集合.它不能直接与窗 ...
- 从零开始的JS生活(三)——内置对象
咱们继续进行我们的正经的JS介绍.今天所要跟大家讲述的是JS中十分常用.十分常用.十分常用的内置对象. 一.世界上最熟悉的陌生就是,当你看着数组.而我看着你... - 数组对象 1.数组的概念 在内存 ...
- JVM-3.内存
目录 一.运行时数据区 二.内存使用细节:以HotSpot的堆为例 三.实战:OutOfMemoryError异常 四.垃圾收集器(堆+方法区)与内存分配策略 一.运行时数据区 1.程序计 ...
- 关于echarts使用的常见问题总结
关于echarts使用的问题总结1.legend图例不显示的问题: 在legend中的data为一个数组项,数组项通常为一个字符串,每一项需要对应一个系列的 name,如果数组项的值与name不相符则 ...
- pb传输优化浅谈
在正式切入今天要谈的优化之前,先碎碎念一些自己过去这几年的经历.很久没有登录过博客园了,今天也是偶然兴起打开上来看一下,翻看了下自己的随笔,最后一篇原创文章发布时间是2015年的4月,今天是2017年 ...