假如现在有一个需求,要你用Java语言来匹配出一个文本里面的所有(英文半角)标点符号,你会怎么写呢?我想大多数人应该是把这些符号都罗列出来,

如:

!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

但[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]这样写需要转义一下,

结果为:

[-!"\#\$%&'()*+,./:;<=>?@

\^_`\{\|\}~]

然后写到java代码后,有需要转义一次,

变为:

[-!\"\\#\\$%&'()*+,./:;<=>?@\\[\\\\\\]\\^_`\\{\\|\\}~]

这样的代码,细思极恐。

我们先来用java代码验证一下,这个长长的正则能不能用

String str="1~2-6,C#,1+2=3;@qq.com2^3functon(){}";

String regex="[-!\"\\#\\$%&'()*+,./:;<=>?@\\[\\\\\\]\\^_`\\{\\|\\}~]";

Matcher m=Pattern.compile(regex).matcher(str);

while(m.find()){

System.out.print(m.group());

}

输出结果:

~-,#,+=;@.^(){}

很欣慰,正则应该是没错的。但这样的正则看起来挺反胃的,那么有没有简洁的写法呢?答案是有的,可以利用POSIX字符类来实现,正则为:\p{Punct}

String str="1~2-6,C#,1+2=3;@qq.com2^3functon(){}";

String regex="\\p{Punct}";

Matcher m=Pattern.compile(regex).matcher(str);

while(m.find()){

System.out.print(m.group());

}

输出结果:

~-,#,+=;@.^(){}

简直了,是不是对正则又燃起了希望之火

,这就是在恰当的时候用POSIX字符类的好处。虽然平时比较少运用POSIX字符类的写法,但在恰当的时机运用起来就会有一种一鸣惊人的感觉。

那么我们来看看POSIX字符类有哪些:

除了POSIX字符类之外,还有一个也知道提一下,那就是Unicode块和类别的类

Java 正则表达式 中的 任意字符

原来正则表达式中的"."代表的是除换行以外的任意字符,如果要真正代表任意字符,需要把换行符也加进去,但是经过测试"[.\\n]"不生效,可以使用"\\ ...

Java正则表达式中的捕获组的概念及相关API使用

要弄清这三个方法,首先要弄清Java正则表达式中的捕获组的概念.捕获组也就是Pattern中以括号对“()”分割出的子Pattern.至于为什么要用捕获组呢,主要是为了能找出在一次匹配中你更关心的部分 ...

关于 Java正则表达式中的Possessive数量修饰词的理解

关于 Java正则表达式中的Possessive数量修饰词的理解 正则表达式对于数量限定符如 ?, + , *, {n, m} 的匹配默认是贪婪模式,比如: a.*b   匹配 acbab 的结果是 ...

JAVA正则表达式中如何匹配反斜杠 &bsol;

有时候我们需要匹配反斜杠,你可能会把对应的正则表达式写成 "\\" 然后可能会有如下输出: Exception in thread "main" java.ut ...

Java基础中字符串与字符的注意点!

在Java中,字符的表达与字符串的表达是不一样的!话不多说,直接上代码!!! String  a="a"; char a='a'; 其中他们的引号是不一样的

java正则表达式 需要转义的字符

特别字符 说明 $ 匹配输入字符串的结尾位置.如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n' 或‘\r'.要匹配 $ 字符本身,请使用 \$. ( ) 标记一个子 ...

Java 正则表达式获取两个字符中间的内容

利用 正则表达式 获取两个字符串中间的值 直接上代码吧,不是很难. public static void main(String[] args) { // 内容 String value = &quo ...

Java正则表达式的解释说明

1.字符x    字符 x.例如a表示字符a\\    反斜线字符.在书写时要写为\\\\.(注意:因为java在第一次解析时,把\\\\解析成正则表达式\\,在第二次解析时再解析为\,所以凡是不是1 ...

Java——正则表达式

题目: java中提供了对正则表达式的支持. 有的时候,恰当地使用正则,可以让我们的工作事半功倍! 如下代码用来检验一个四则运算式中数据项的数目,请填写划线部分缺少的代码. 注意:只填写缺少代码,不要 ...

随机推荐

自己写的java excel导出工具类

最近项目要用到excel导出功能,之前也写过类似的代码.因为这次项目中多次用到excel导出.这次长了记性整理了一下 分享给大伙 欢迎一起讨论 生成excel的主工具类: public class E ...

JVM 垃圾回收器工作原理及使用实例介绍

IBM介绍文档:https://www.ibm.com/developerworks/cn/java/j-lo-JVMGarbageCollection/ Java 的新生代串行垃圾回收器中使用了复制 ...

Ubuntu Server 16&period;04下ASP&period;NET Core Web Api &plus; MySql &plus; Dapper在 Jexus、nginx 下的简单测试

一.环境及工具 1.服务器 VirtualBox5.1.4 安装 Ubuntu Server 16.04 amd64 MySql Ver 14.14 Distrib 5.6.21 Jexus 5.8. ...

使用convert来批量处理图片

这是个神奇的工具,居然使用命令行就可以这么方便的处理图片.功能有待挖掘. 这个是把图片批量进行 resize 的脚本. #!/bin/sh counter= root=mypict resolutio ...

cocos2dx旧版本支持arm64修改

修改的版本是cocos2dx.2.2 1.在neon_matrix_impl.c中修改 #if defined(__ARM_NEON__)为 #if defined(_ARM_ARCH_7) 2.在m ...

使用免费内测托管平台fir&period;im测试

1,使用Xcode先行把项目导成ipa文件.登录http://fir.im/ 2.点击左上角的苹果标志,把准备好的ipa文件拖入即可.4.填写相关材料即可开始上传5,让飞机灰一会即可.6.接着会看见: ...

ListView及Adapter的使用

一.使用ArrayAdapter 其中ArrayAdapter的构造函数有如下几个,其中resource是指每个列表项的布局文件,objects是指列表项的数据源,此处通常指一个数组 ArrayAda ...

Spring&plus;Mybatis 复杂的分组查询

1.需要的结果数据格式为 { "responseCode": "0000", "responseMsg": null, "data ...

数据库alert报错:ORA-00202、ORA-15081、ORA-27072

思路分析: 1.发现数据库宕机,检查alert日志发现如下出现控制文件:I/O错误 Thu Apr 11 06:40:14 2019WARNING: Read Failed. group:2 disk ...

java 正则表达式 unicode_java正则表达式中的POSIX 字符类和Unicode 块和类别的类介绍...相关推荐

  1. java 正则 u2E80_java正则表达式中的POSIX 字符类和Unicode 块和类别的类介绍

    假如现在有一个需求,要你用java语言来匹配出一个文本里面的所有(英文半角)标点符号,你会怎么写呢?我想大多数人应该是把这些符号都罗列出来, 如: !"#$%&'()*+,-./:; ...

  2. python使用正则表达式删除字符串中的其它字符只保留数字和字母

    python使用正则表达式删除字符串中的其它字符只保留数字和字母 #python使用正则表达式删除字符串中的其它字符只保留数字和字母 # Python code to demonstrate # to ...

  3. JAVA utf8编码字符_Java中的UTF-8字符编码

    我有一些问题需要一些法语文本转换为UTF8,以便它可以在控制台,文本文件或GUI元素中正确显示. 原来的字符串是 HANDICAP╔ES 这应该是 HANDICAPÉES 这是一个代码片段,显示了如何 ...

  4. java正则表达式 ascii_Java——正则表达式

    字符 x             字符 x \\             反斜线字符 \0n          带有八进制值 0 的字符 n (0 <= n <= 7) \0nn     ...

  5. Java学习笔记——正则表达式(Pattern类、Matcher类和PatternSyntaxException)

    目录 一.Pattern类 (一)Pattern 介绍 (二)Pattern 方法 二.Matcher类 (一)Matcher 类介绍 (二)Matcher 类方法 三.PatternSyntaxEx ...

  6. java ssh乱码_SSH框架下中文字符乱码问题的研究

    1 Java中文乱码问题的产生原因 在Java Web的应用中,中文字符乱码问题是个由来已久和让人头疼的问题,尤其是刚刚接触Java Web编程的人员,往往在解决中文字符乱码问题上花费了大量的时间和精 ...

  7. java printstream 中文乱码_JAVA的中文字符乱码问题

    JAVA的中文字符乱码问题一直很让人头疼.特别是在WEB应用中.网上的分析文章和解决方案都很多,但总是针对某些特定情况的.很多次遇到乱码问题后, 经过极为辛苦的调试和搜索资料后终于解决,满以为自己已经 ...

  8. java 序列化实例_Java中的序列化与反序列化实例

    创建的字节流与平台无关.因此,在一个平台上序列化的对象可以在另一个平台上反序列化. 为了使Java对象可序列化,我们实现java.io.Serializable可序列化接口. ObjectOutput ...

  9. 如何批量替换文件名称中的指定字符?

    概要:在工作中,我们经常会碰到需要批量修改一堆文件名中的指定字符的场景,比如把文件中的年份换成新的年份,替换文件名中的版本号等等.如果只是很少的文件,那我们手工进行进行修改也是非常方便的,但是当文件量 ...

  10. 【历史上的今天】12 月 24 日:姚期智出生;微软在 Java 反垄断案中败诉;GIF 图像格式获得专利保护

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 12 月 24 日,在 115 年前的今天,美国电子和无线电技术专家雷吉纳德·费森登(Reginal ...

最新文章

  1. 获取返回值作为变量_解决多线程间共享变量线程安全问题的大杀器——ThreadLocal...
  2. 离职成为自由开发者的第 100 天
  3. java多线程调用nsq消费_spark-streaming连接消费nsq
  4. “指向指针的指针”的理解
  5. android性能优化 掘金,Android性能优化之内存泄漏
  6. LiteOS内核源码分析:静态内存Static Memory
  7. 鸿蒙什么时候出来,鸿蒙系统什么时候发布
  8. 【转载】文件上传命令rz和下载命令sz的安装
  9. 机器学习第三回——logistic回归算法
  10. 如何提高python代码运行速度_一行代码让你的python运行速度提高100倍
  11. android libyuv库的使用
  12. Froala editor 2.9.5 使用
  13. Markdown生成左侧目录
  14. 使用k3s部署轻量Kubernetes集群快速教程
  15. 电子商务系统怎么开发,有哪些流程_OctShop
  16. apple music学生订阅续期认证网页打不开问题解决办法
  17. 游戏开发,策划文档入门指南
  18. 产品经理(21) #数据分析
  19. 【渝粤题库】陕西师范大学202181公共组织人力资源管理 作业(高起专)
  20. 智能无感人体测温系统解决方案

热门文章

  1. javascript 数组操作函数
  2. 微信中直接打开手机系统浏览器的实现
  3. Mybatis中mysql blob类型乱码解决
  4. 常见创建项目编译运行问题汇总
  5. Ubuntu下PHP开发环境LAMP搭建
  6. 设计网际网络的地址标准
  7. cpu性能参数如何看?
  8. 为什么计算机桌面显示器,电脑显示屏不显示是怎么回事 电脑显示屏不显示如何解决【详细介绍】...
  9. elasticsearch使用场景_Elasticsearch功能、适用场景及特点
  10. linux 编译java web_linux:搭建java web环境