正则表达式的语法

简介: 正则表达式的语法

正则表达式语法简介


正则表达式是独立于任何语言的,虽然不同的语言中其语法略有不同。


正则表达式的语法可以分为

• 特殊字符

• 边界匹配符

• 逻辑操作符

• 量词等


这些基本的语法规则合成使用,共同构成了正则表达式强大的表示和匹配功能


一般字符的语法在前一节已经介绍过(例如字符i)


特殊字符的表达

image.png

例如,如果我们要查找一个字符串,这个字符串中至少包含两行(两行可以不相邻),前面

一行中存在两个制表符,它们中间仅仅隔一数字,后面一行中至少有一个制表符,则正则表

达式可以这样写:

• String regexString = “.\t\d\t.\n.\t.”(其中的.表示任意多个非换行字符)


• 注意:正则表达式原文是“.\t\d\t.\n.\t.*” ,双反斜杠中前一反斜杠是Java对反斜杠的转义。


边界匹配符

image.png

例如,如果我们要判断一个完整文本中是否存在完整的一行"This is a complete line",且行中没有其它任何字符,则可以如下的正则表达式:

• String regexString = “^This is a complete line$”


• 其中的 ^ 和 $ 界定了行的起始和终止,中间的信息必须完整匹配才可以。


逻辑操作符

image.png

例如,假设十六进制的表示字符是由数字和A-F这6个大写字母构成。我们知道一个字节可以用 2位的16进制表示,下面这个正则表达式要判断一个字节转换成十六进制之后的表示是不是正确:

• String regexString = “[0-9A-F][0-9A-F]”


字符串“ AE”, “30”, “6G”, “7E0”, “0A”匹配这个模式的结果分别是:T, T, F, F, T。其实这个需求还有更简单的实现方法,我们将在量词中介绍。


量词


量词 描述了一个模式怎样吸收输入的文本:

  • 贪婪型:量词是贪婪的,除非有别的设定。否则,贪婪型模式就要尽可能地发现更多的匹配。
  • 勉强型:用问号指定。这个量词需要满足匹配的最少字符数。
  • 占有型:目前,只有Java语言可用,属于Java特殊语法,主要用途是防止失配时回溯。在简单的正则表达式中很少使用。

image.png

例如,判断一个字节的十六进制表示是否正确可以用下面的正则表达式:

• String regexString = “[0-9A-F]{2}”


判断一个字符串表示的数值是不是一个(0, 1亿)之间的整数,可用:

• String regexString = “[1-9]//d{0,7}”


目录
相关文章
|
5月前
|
机器学习/深度学习 存储 JavaScript
正则表达式基础语法与Java、JS使用实例
正则表达式基础语法与Java、JS使用实例
73 1
|
2月前
正则表达式语法讲解
正则表达式语法讲解
17 0
|
9月前
|
存储 索引 Python
【100天精通python】Day23:正则表达式,基本语法与re模块详解示例
【100天精通python】Day23:正则表达式,基本语法与re模块详解示例
86 0
|
10月前
|
Python
Python正则表达式语法快速入门
正则表达式需要与相关函数共同使用,对函数的学习可以参考: Python正则表达式所有函数详解
|
JavaScript
js基础笔记学习202正则表达式语法3量词
js基础笔记学习202正则表达式语法3量词
57 0
js基础笔记学习202正则表达式语法3量词
|
JavaScript
js基础笔记学习200正则表达式语法1
js基础笔记学习200正则表达式语法1
56 0
js基础笔记学习200正则表达式语法1
|
JavaScript
js基础笔记学习201正则表达式语法2
js基础笔记学习201正则表达式语法2
65 0
js基础笔记学习201正则表达式语法2
|
数据采集 移动开发 Python
正则表达式——语法、re模块的使用(附示例)
正则表达式——语法、re模块的使用(附示例)
106 0
正则表达式——语法、re模块的使用(附示例)
正则表达式的通用语法以及用法作用
正则表达式的通用语法以及用法作用
119 0
正则表达式的通用语法以及用法作用
C#编程-85:正则表达式语法复习
C#编程-85:正则表达式语法复习
C#编程-85:正则表达式语法复习