今天遇到一个字符串,怎么匹配空格都不成功!!!

我把空格复制到test.properties文件 显示“\u3000” ,这是什么? 这是全角空格!!!

查了一下    \s    不支持全角

1、"\s"匹配的是哪一种空格?

正则表达式中\s匹配任何空白字符,包括空格、制表符、换页符等等;中文全角空格

\s 并不能匹配中文全角空格。

\s 只能匹配下面六种字符(详见 java.util.regex.Pattern 的 API DOC):

  1.   半角空格( )
  2.   水平制表符(\t)
  3.   竖直制表符
  4.   回车(\r)
  5.   换行(\n)
  6.   换页符(\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正则匹配空白字符的问题(全角空格与半角空格)的更多相关文章

  1. 关于JAVA正则匹配空白字符的问题

    今天遇到一个字符串,怎么匹配空格都不成功!!! 我把空格复制到test.properties文件 显示“\u3000” ,这是什么? 这是全角空格!!! 查了一下    \s    不支持全角 1.& ...

  2. 通用且常用的Java正则匹配工具,用以检查邮箱名、电话号码、用户密码、邮政编码等合法性

    一个通用且常用的Java正则匹配工具,用以检查邮箱名.电话号码.用户密码.邮政编码等合法性. import java.util.regex.Matcher; import java.util.rege ...

  3. java 正则匹配空格字符串 正则表达式截取字符串

    java 正则匹配空格字符串 正则表达式截取字符串 需求:从一堆sql中取出某些特定字符串: 比如配置的sql语句为:"company_code = @cc and project_id = ...

  4. Java 全角字符转半角字符

    1.java代码里有时候会遇到代码注入的安全问题,为了防止这种问题,增加了一个过滤功能.主要是过滤全角字符,把url不能识别的全角字符转换成半角字符 public class Test { publi ...

  5. C#全角转换成半角并检查

    新建一个项目quanbanjiao,在此项目下新建一个类Class1 using System; using System.Web; using System.Text; namespace quan ...

  6. php全角字符转换为半角函数

    <?php /** * 全角字符转换为半角 * * @param string $str * @return string public function Sbc2Dbc($str) { $ar ...

  7. php全角字符转换为半角函数 实例代码

    PHP全角半角转换函数,把目前能找到的所有全角都列出来了一个个替换吧. 之前试过网上找的通过ASCII之类的字符替换,发现很多莫名其妙的问题.最后还是换成下面的字符替换方式了,把目前能找到的所有全角都 ...

  8. iOS全角符与半角符之间的转换

    iOS全角符与半角符之间的转换 相关资料: 函数『CFString​Transform』中文 详情: 问题 1.17-03-15,「有人在群里边问怎么把『半角』符字符串转换成『全角』字符串?」,百度的 ...

  9. js全角字符转为半角字符

    //全角转半角 function CtoH(str){ var result=""; for (var i = 0; i < str.length; i++){ if (st ...

随机推荐

  1. Educational Codeforces Round 47 (Rated for Div. 2) :B. Minimum Ternary String

    题目链接:http://codeforces.com/contest/1009/problem/B 解题心得: 题意就是给你一个只包含012三个字符的字符串,位置并且逻辑相邻的字符可以相互交换位置,就 ...

  2. java 第三章 流程控制语句

    1.条件语句 (1)if 语句 ( 单一条件) if (表达式){ 执行语句块 } (2)执行流程 · if 语句 条件表达式可以是任何一种逻辑表达式   如果表达式值为true,则执行花括号的内容后 ...

  3. .net core 新建一个web api 的步骤 初级

    1.使用VS2017 选择 .net core web应用程序. 2.选择web api(空). 3.如果需要用iis express调试,则需要修改 program.cs. 4.在Controlle ...

  4. Yarn 调度器Scheduler详解

    理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源.在Yarn中,负责给应用分配资 ...

  5. 插件开发遇到的坑------final 型变量,编译过程被优化

    android 插件开发遇到的坑 今天遇到一个坑,pdf 插件,调用了主工程的一个静态final 字符串,但是主工程里面已经没有这个字符串了,却没有崩溃. 后来同事说,因为字符串可能已经直接被写死了. ...

  6. OBS源码编译开发

    本文来自网易云社区 作者:梁敏 OBS简介 OBS(Open Broadcaster Software)是免费开源的视频录制和直播软件,支持运行在windows,Mac和linux平台.官方链接 ht ...

  7. 修改npm全局安装模式的路径

    由于npm全局模块的存放路径及cache的路径默认是放在C盘下,这样肯定会增加C盘的负担,那么如果需要修改其存放路径应该怎么做呢? 第一步:在nodejs安装目录(也可以指定其它目录)下创建”node ...

  8. Spark集群管理器介绍

    Spark可以运行在各种集群管理器上,并通过集群管理器访问集群中的其他机器.Spark主要有三种集群管理器,如果只是想让spark运行起来,可以采用spark自带的独立集群管理器,采用独立部署的模式: ...

  9. [leetcode-609-Find Duplicate File in System]

    https://discuss.leetcode.com/topic/91430/c-clean-solution-answers-to-follow-upGiven a list of direct ...

  10. C++的几种字符类型

    我们在C学过了char字符类型. 在C++中,char是基本的字符类型,但却不仅仅有这一种字符类型! 类型 含义 该类型数据所占的最小比特位数 char 字符 8位(即可表示28个字符) wchar_ ...