正则表达式

文章目录


正则表达式从功能上大致分为

  1. 限定符:限定出现的次数
  2. 选择匹配符
  3. 分组组合和反向引用符
  4. 特殊字符
  5. 字符匹配符
  6. 定位符

元字符-转义符号

当我们使用正则表达式去检索某些特殊字符的时候,需要用到转义字符,否则检索不到结果,甚至会报错。

转义字符:\ 或 \

大多数语言的转移字符是 \ , java中是 \

需要用到转义字符的字符有:. * + ( ) $ / \ ? [ ] ^ { }

字符匹配符

符号 释义 实例 解释
接收的字符列表 efkl e,f,k,l 中的任意一个字符
\^ 不接收的字符列表 \^abc 除a,b,c之外的任意字符(包括数字和符号)
- 连字符 A-Z 任意单个大写字母
. 匹配出\n 意外的任何字符 a...b 以a开头并以b结尾 中间包括两个任意字符的长度为4的字符串。例如 :a47b 、a&*b、aaab
\\d 匹配单个数字字符,相当于0-9 \\d{3}(\\d)? 包含3个或4个数字的字符串 例如:996 1024
\\D 匹配单个非数字字符,相当于\^0-9 \\D(\\d)* 以单个非数字开头,后接任意个数字字符。例如:a10086、b2、
\\w 匹配单个数字、大小写字母字符和_。相当于0-9a-zA-Z_ \\d{3}\\w{4} 以3个数字开头的长度为7的字符串。例如:996YYDS、007QNMD、5211314
\\W 匹配单个非数字、大小写字母字符。相当于\^0-9a-zA-Z \\D+\\d{2} 以至少一个非数字字母开头,2个数字结尾的字符串。例如:#*&^29、&99、%100

a-z:表示可以匹配 a-z 中任意一个字符。

A-Z:表示可以匹配 A-Z 中任意一个字符。

(?i)abc:表示不区分大小写的匹配 ?i) 后面的字符串

\^a-z:否定匹配

\^A-Z:否定匹配

\^0-9:否定匹配

\^a-z{2}:表示匹配不是小写字母的两个

选择匹配符

| : 匹配"|"之前或者之后的表达式

正则限定符


定位符

符号 含义 示例 说明 举例
^ 指定起始字符 ^[1](#符号 含义 示例 说明 举例 ^ 指定起始字符 1+[a-z]* 029、9i、996gun、9 指定结束字符 2\\-[a-z]+ 1-a、9-n、0-y \b 匹配目标字符串的边界 snow\b Iamsnow HowAreYou \B 匹配目标字符串的非边界 snow\B 与 上面相反 IamSnowHowAreU)^+a-z* 029、9i、996gun、9
$ 指定结束字符 ^[2](#符号 含义 示例 说明 举例 ^ 指定起始字符 1+[a-z]* 029、9i、996gun、9 指定结束字符 2\\-[a-z]+ 1-a、9-n、0-y \b 匹配目标字符串的边界 snow\b Iamsnow HowAreYou \B 匹配目标字符串的非边界 snow\B 与 上面相反 IamSnowHowAreU)^\\-a-z+$ 1-a、9-n、0-y
\\b 匹配目标字符串的边界 snow\\b Iamsnow HowAreYou
\\B 匹配目标字符串的非边界 snow\\B 与 上面相反 IamSnowHowAreU

逻辑运算

  • && :并且
  • | :或者
java 复制代码
public class RegexDemo2 {
    public static void main(String[] args) {
//        1 要求字符串是除a、e、i、o、u外的其它小写字符开头,后跟ad
        System.out.println("vad".matches("[a-z&&[^aeiou]]ad"));
//        2 要求字符串是aeiou中的某个字符开头,后跟ad
        System.out.println("aad".matches("[a|e|i|o|u]ad"));
    }
}

捕获分组

应用

验证汉字

^[\u0391-\uffe5]+$

验证手机号码

^1[3|4|5|7|8|9][0-9]{9}$


  1. 0-9 ↩︎

  2. 0-9 ↩︎

相关推荐
阿昭L21 小时前
正则表达式
正则表达式·编译原理
波力海苔夹心脆6752 天前
C# 正则表达式零基础入门:从“看得懂“到“会用“
经验分享·后端·mysql·正则表达式·c#
FRing033 天前
JavaScript入门到精通二十四(正则表达式、元字符、修饰符)
开发语言·前端·javascript·正则表达式
小白快快跑哦5 天前
python-字符串全解(六):正则表达式-元字符与转义
python·正则表达式·字符串·元字符·转义
小白快快跑哦6 天前
python-字符串全解(六):正则表达式-逻辑运算或
python·正则表达式·字符串·逻辑运算
MoRanzhi12037 天前
106.正则问题(分治)
python·算法·正则表达式·蓝桥杯·递归·分治算法·字符串处理
临床数据科学和人工智能兴趣组8 天前
在R语言的生态系统中,字符串处理一直是一个重要且复杂的任务
开发语言·正则表达式·r语言·r语言-4.2.1
小白快快跑哦9 天前
python-字符串全解(六):正则表达式-前后相断言
开发语言·python·正则表达式·前后相断言
小白快快跑哦10 天前
python-字符串全解(六):正则表达式-修饰符
python·正则表达式·修饰符
11路没有终点10 天前
正则表达式(Regex)通用学习文档
正则表达式