正则表达式小括号的作用

简介: 1.正则表达式中的圆括号的作用是对字符进行分组,并保存匹配的文本。2.圆括号用法I:对字符或元字符进行分组,这样在圆括号内就可以对字符组合使用限定符。    eg. 匹配A+一个数字+A+一个数字:(A\d){2}3.圆括号用法II:表示可选择性。

1.正则表达式中的圆括号的作用是对字符进行分组,并保存匹配的文本。

2.圆括号用法I:对字符或元字符进行分组,这样在圆括号内就可以对字符组合使用限定符。

    eg. 匹配A+一个数字+A+一个数字:(A\d){2}

3.圆括号用法II:表示可选择性。

    3.1 从两个直接量中选择一个

       eg. gr(a|e)y匹配gray和grey,该例子还可以使用gr[ae]y,字符类效率更高。

    3.2 从多个直接量中选择

       eg. (Doctor|Dr\.?)匹配Doctor,Dr,Dr.三种情况

    3.3 错误匹配的交替行为,

       使用交替行为时,有时会出现意想不到的错误。

       eg. 用(a|ab)匹配ab时,只能匹配a,但是如果用(ab|a),则可以匹配ab

4.捕获圆括号:正则表达式中,与位于圆括号之间的模式匹配的内容都会被捕获。

    4.1 当模式中有嵌套的圆括号时,变量的编号会按照圆开括号出现的位置一次进行。

    eg. ([A-Za-z](\d{2}))((-)\d{2})匹配”A22-33”时,匹配情况如下:

Group 1:   A22

Group 2:   22

Group 3:   -33

Group 4:   -

    4.2 .NET中,可以创建命名的组,语法为:

       (?<组名>模式)或(?’组名’模式)

       eg. (?<FirstLetter>\w(?'Num'\d{2}))((-)\d{2})匹配” A22-33”情况为:

        Group "FirstLetter": A22

Group "Num":  22

Group 1:   -33

Group 2:   -

    4.3 非捕获的圆括号:.NET和JavaScript都提供了非捕获圆括号的功能,即圆括号的内容不作为捕获对象,当圆括号中的内容不是想捕获的对象时,采用非捕获圆括号可以提高匹配效率。语法为:

       (?:the-non-captured-content)

       eg. (\w(?:\d{2}))((?:-)\d{2})匹配” A22-33”情况如下:

        Group 1:   A22

Group 2:   -33

注:\d{2}匹配的”22”没有被捕获

5.反向引用(backreferences)

    语法:.NET和javascript中,表示匹配第一组的变量被指定为”\1”

    能够体现反向引用的便利性的一种情况是找到句子中重复的单词。

    eg. 查找下列句子中重复的单词:

I think that that is often overdone.

This sentence contains contains a doubled word or two two.

我们用([A-Za-z]+) +\1\b来匹配,红色部分为匹配的结果

       在这个匹配模式中([A-Za-z]+)为匹配的第一组变量,后面加一个或多个空格( +)表示单词间隔,

       然后用”\1”来表示第一组匹配的变量(即[A-Za-z]+匹配的内容),最后一个表示单词的结束(\b)

目录
相关文章
写几个正则表达式:只允许输入汉字、数字、字母、中英文小括号,并且10个字符以内|只允许输入汉字、数字、字母、英文小括号|电话号码正则表达式
写几个正则表达式:只允许输入汉字、数字、字母、中英文小括号,并且10个字符以内|只允许输入汉字、数字、字母、英文小括号|电话号码正则表达式
274 0
|
数据安全/隐私保护 Python
一日一技:正则表达式同一个小括号两种意思
一日一技:正则表达式同一个小括号两种意思
184 0
一日一技:正则表达式同一个小括号两种意思
Python 内置正则表达式库re的使用
正则表达式是记录文本规则的代码,用于查找和处理符合特定规则的字符串。在Python中,常通过原生字符串`r&#39;string&#39;`表示。使用`re.compile()`创建正则对象,便于多次使用。匹配字符串有`match()`(从开头匹配)、`search()`(搜索首个匹配)和`findall()`(找所有匹配)。替换字符串用`sub()`,分割字符串则用`split()`。
|
6月前
|
数据库 Python
Python网络数据抓取(8):正则表达式
Python网络数据抓取(8):正则表达式
61 2
|
6月前
|
自然语言处理 JavaScript 前端开发
Python高级语法与正则表达式(二)
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
|
6月前
|
安全 算法 Python
Python高级语法与正则表达式(一)
Python提供了 with 语句的写法,既简单又安全。 文件操作的时候使用with语句可以自动调用关闭文件操作,即使出现异常也会自动关闭文件操作。
|
6月前
|
Python
Python使用正则表达式分割字符串
在Python中,你可以使用re模块的split()函数来根据正则表达式分割字符串。这个函数的工作原理类似于Python内置的str.split()方法,但它允许你使用正则表达式作为分隔符。
|
6月前
|
Python
Python中re模块的正则表达式
【6月更文挑战第2天】了解Python的re模块,它是处理正则表达式的核心工具。正则表达式用于在文本中查找特定模式。本文讨论了re模块的用法和技巧,包括导入模块、匹配、分组、替换文本、编译正则表达式以及使用预定义字符类、量词、锚点等高级功能。通过实例展示了如何在Python中执行这些操作,帮助提升文本处理能力。掌握这些技巧将使你更有效地利用正则表达式解决字符串处理问题。
60 2
|
6月前
|
Python
Python正则表达式详解:掌握文本匹配的魔法
Python正则表达式详解:掌握文本匹配的魔法
|
6月前
|
Python
python re 正则表达式库的使用
python re 正则表达式库的使用
47 0