正则表达式

概述

1.正则表达式用于解决字符串出了问题,包括匹配、选择、编辑和验证。

表达式语法

字符

表达式描述示例
c字符
.任何除行终止符的字符,通过设置标志可以匹配包括行终止符的字符
\x{p}十六进制码为p的Unicode码点\x{1D546}
\xhh,\uhhhh十六进制码元\uFEFE
\a,\e,\f,\n,\r,\t响铃,转义,换页,换行,回车,制表符\n
\Q…\E在做引号和右引号之间的所有字符\Q(…)\E匹配字符串(…)
字符类
表达式描述示例
[adc]任何由abc表示的字符[0-9±]
[^adc]任何除abc表示的字符[^\d\s]
[a-z&&[hij]]任何与h或i或j相交的字符[\p{L}&&[ ^a-zA-Z]
\d数字[0-9]\d+是一个数字序列
\D非数字[ ^\d]
\w单词字符[a-zA-Z0-9]
\W非单词字符[ ^\w]
\s空白符,包括空格、回车、换页、换行、tab
\S非空白符
逻辑操作符
表达式描述示例
XY任何X中的字符串后面跟着Y中的字符串[1-9][0-9]*表示没有前导0的整数
XY任何X或Y中的字符串
群组:使用括号划分的正则表达式,可以根据组的编号来引用某个组。组号为0表示整个表达式,组号为1表示被第一个括号括起的组。
A(B(E))D:有三个组,组0为ABED,组1为BE,组2为E
表达式描述示例
(X)捕获X的匹配‘([ ^’]*)'捕获的是被引用的文本
\数字第n(n为斜杠后的数字)组([’ “]).*\1 匹配第一组’adc’和"abc”,但不能匹配’abc"
(?X)捕获与给定名字匹配的X'(?[A-Za-x0-9]+)'可以捕获名字为id的匹配
\k具有给定名字的组\k可以匹配名字为id的组
(?:X)使用括号但是不捕获X在(?:http|ftp)://(.*)中,在://之后的匹配是\l
量词
表达式描述示例
X?可选X+?可选的+号
X*,X+0个或多个,一个或多个[1-9][0-9]+大于10的整数
X{n},X{n,},X{m,n}n个,至少n个,m到n个[0-7]{1,3}一位到三位八进制数
Q?,其中Q是一个量词表达式勉强量词,在尝试最长匹配之前先尝试最短匹配.*(<.+?>).*捕获尖括号括起来的最短序列
Q+,其中Q是一个量词表达式占有量词,在不回溯的情况下获取最长匹配‘[ ^’]*+'匹配单引号引起来的字符串,并且在字符串中没有右单引号的情况下立即匹配失败

正则表达式使用

  1. 简单使用:使用String的内建功能,使用方式如下:
    “待匹配的字符串”.matchers(“正则表达式”)。
  2. 复杂使用:
    使用Pattern类的静态方法compile()来编译你的正则表达式,它会根据String类型的正则表达生成一个Pattern对象,将需要检索的字符串传入该pattern对象的matcher()方法,生成一个Matcher对象,该对象有很多功能可供使用,最简单的matchers()检测刚才传入的字符串是否满足正则表达式,还有find()以及与群组相关的方法。

参考说明 https://www.runoob.com/java/java-regular-expressions.html

https://www.runoob.com/java/java-regular-expressions.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值