首页 > 其他分享 >正则表达式的语法

正则表达式的语法

时间:2023-03-18 21:32:49浏览次数:45  
标签:字符 匹配 正则表达式 语法 字符串 前导 元字符

4.2.1 正则表达式的语法

正则表达式是对字符串操作的一种逻辑公式,它会将事先定义好的一些特定字符以及他们的组合组成一个规则字符串,并且通过这个规则字符串表达对给定字符串的过滤逻辑。

一条正则表达式也称为一个模式,使用某个模式可以匹配指定文本中与表达式模式相同的字符串。正则表达式由普通字符、元字符或预定义字符集组成。

1.元字符

在正则表达式中,元字符是指具有特殊含义的专用字符,主要用于规定其前导字符在给定字符串中出现的模式。

表4-1 常用的元字符

元字符

说明

.

匹配任何一个字符(除换行符外)

^

匹配字符串的开头

$

匹配字符串的末尾

连接多个子表达式,匹配与任意子表达式模式相同的字符串

[]

字符组,匹配其中出现的任意一个字符

-

连字符,匹配指定范围内的任意一个字符

匹配其前导字符0次或1次

*

匹配其前导字符0次或多次

+

匹配其前导字符1次或多次

{n}

匹配其前导字符n次

{m,n}

匹配其前导字符m~n次

()

分组,匹配子组​

以下通过列举一些实例来说明表4-1中元字符的用法。

  • J.m:匹配以“J”开始、以“m”结尾的字符串,匹配结果可以为J#m、Jim、J2m等。
  • ^py:匹配以“py”开始的字符串,匹配结果可以为python,pyinstaller等。
  • on$:匹配以“on”结尾的字符串,匹配结果可以为python、moon等
  • a|b|c|d:匹配字符串中“a”,“b”,“c”或“d”。
  • [cC]hina:匹配以“c”或“C”开头、以“hina”结尾的字符串,匹配结果可以为China或者china。
  • [A-Z]hina:匹配A~Z的任意一位大写字母,匹配结果可以为China。
  • June?:匹配元字符“?”前的字符“e”0次或1次,匹配结果可以为june或者july。
  • ht*p:匹配字符“t”0次或者多次, 匹配看结果可以为hp、htp、http、htttp等。
  • ht+p:匹配字符“t”1次或者多次,匹配结果可以为htp、http或httttp。
  • ht{2}p:匹配字符“t”2次,匹配结果可以为http。
  • ht{2,4}p:匹配字符“t”2~4次,匹配结果可以为http、htttp或htttp。
  • Feb(ruary)?:匹配子组“ruary”0次或1次,匹配结果可以为Feb或Febuary。

2.预定义字符集

在正则表达式中,除了前面介绍的元字符之外,还预定义了一些字符集。这些字符集以更加简洁的方式描述了一些由普通字符和元字符组合的模式。

预定义字符集

说明

\w

匹配下划线"_"或者任何字母(a~z,A~Z)与数字(0~9)

\s

匹配任意的空白字符串,等价于[<空格>\t\r\n\f\v]

\d

匹配任意数字,等价于[0-9]

\b

匹配单词的边界

\W

与\w相反,匹配非字母或数字或下划线的字符

\S

与\s相反,匹配任意非空白字符字符的字符,等价于[^\s]

\D

与\d相反,匹配任意非数字的字符等价于[^\d]

\B

与\b相反,匹配不出现在单词边界的元素

\A

仅匹配字符串开头,等价于^

\Z

仅匹配字符串结尾,等价于$

标签:字符,匹配,正则表达式,语法,字符串,前导,元字符
From: https://blog.51cto.com/u_15754660/6129810

相关文章

  • Vue2入门之超详细教程三-初识模板语法
    1、简介模板语法就是按照固定的模板去书写代码,分为插值语法和指令语法。差值语法:功能:用于解析标签体内容写法:{{xxxx}},xxx是js表达式,且可以读取......
  • java进阶 正则表达式 -常用47
           QQ的正则表达式验证:StringQQ="[0-9]\\d{4,11}";System.out.println("123456".matches(QQ));手机号验证:Stringphone="^(13[0-9]|14[......
  • storybook 编写stories的story基础语法
    编写storiesstory用于展示组件某个状态,每个组件可以包含任意多个story,用来测试组件的各种场景。根据默认配置,只需要在组件的文件夹中,以 **.component.stories.ts 的......
  • 【JAVA基础】正则表达式
    正则表达式就是我们程序员为了在海量数据中搜索到符合我们规定的格式的数据所采用的一种规范,官方一点就是说正则表达式是一种文本模式,包括普通字符(例如,a到z之间的字母)和......
  • 【CSS】盒子模型内边距 ① ( 内边距概念 | 内边距设置语法 | 内边距设置效果 | 代码示
    文章目录​​一、内边距​​​​1、概念​​​​2、内边距设置语法​​​​3、内边距设置效果​​​​二、内边距代码示例​​​​1、不设置边距的示例​​​​2、设置边距......
  • Markdown语法详解
    Markdown语法详解标题+空格+要写的东西=一级标题+空格+要写的东西=二级标题+空格+要写的东西=三级标题+空格+要写的东西=四级标题+空格+要写的东西=五级标题+空格+......
  • 【 Python 】补全fibersim 导出的xml语法
    fibersim导出的xml文件中,node和mesh部分的标签会缺失。即<R></R>变成了<R/>.以下python脚本可以自动修正importref2=open('x13.xml','w')withopen('E:\\20230314......
  • 万字血书Vue—Vue语法
    模板语法插值语法Mustache插值采用{{}},用于解析标签体内容,将Vue实例中的数据插入DOM中<h1>Hello{{name}}</h1>指令语法指令用于解析标签,是vue为开发者提供的一套......
  • DTD语法规则
    元素的定义:  属性的定义:  <?xmlversion="1.0"encoding="UTF-8"?><!--第三种引入约束的方式就是用网络中的dtd文件引入约束--><!DOCTYPEstudentsPUB......
  • 10. 正则表达式匹配
    10.正则表达式匹配1.动态规划publicbooleanisMatch(Strings,Stringp){char[]cs=s.toCharArray();char[]cp=p.toCharArray();......