Python3正则表达式第三课

#!/usr/bin/env python3
# coding =utf-8

'''
正则表达式子组相关知识点

'''

import re

string = "abcdefg acbdgef abcdgfe cadbgfe"

# 使用()可以为一个正则表达式建立一个子组,子组可以看做内部的整体

# 子组的作用
# 1. 增加子组后对正则表达式整体的匹配内容没有影响
# 2. 子组可以改变重复元字符的重复行为
# 3. 子组在某些操作中可以对子组匹配内容单独提取

# 子组的返回
# 一个子组返回的是括号所匹配到的结果
# 多个子组返回多个括号分别匹配到的结果  先返回外括号,再返回内括号


# 子组的注意事项
# 1.每个正则表达式可以有多个子组,由外到内由左到右为第一第二....子组
# 2.子组通常不要交叉

regex = re.compile("((\w+)\s+\w+)")  # ((1个或多个普通字符)1个或多个空字符1个或多个普通字符)
print(regex.findall(string))
# [('abcdefg  acbdgef', 'abcdefg'), ('abcdgfe  cadbgfe', 'abcdgfe')]

regex01 = re.compile("((\w+)\s+)")  # ((1个或多个普通字符)1个或多个空字符)
# 返回多个括号分别匹配到的结果  先返回外括号,再返回内括号
print(regex01.findall(string))
# 注意空字符
# [('abcdefg  ', 'abcdefg'), ('acbdgef  ', 'acbdgef'), ('abcdgfe  ', 'abcdgfe')]

regex02 = re.compile("((\w+))")  # ((1个或多个普通字符))
# 返回多个括号分别匹配到的结果  先返回外括号,再返回内括号
print(regex02.findall(string))
# [('abcdefg', 'abcdefg'), ('acbdgef', 'acbdgef'), ('abcdgfe', 'abcdgfe'), ('cadbgfe', 'cadbgfe')]

print("-------------------------------------------------------")
regex1 = re.compile("(\w+)\s+\w+")  # (1个或多个普通字符)1个或多个空字符1个或多个普通字符
print(regex1.findall(string))
# ['abcdefg', 'abcdgfe']

regex11 = re.compile("(\w+)")  # (1个或多个普通字符)
# 返回的是()里面的内容
print(regex11.findall(string))
# ['abcdefg', 'acbdgef', 'abcdgfe', 'cadbgfe']

regex12 = re.compile("(\w+)\s+")  # (1个或多个普通字符)1个或多个空字符
# 返回的是()里面的内容
print(regex12.findall(string))
# ['abcdefg', 'acbdgef', 'abcdgfe']

print("-------------------------------------------------------")
regex2 = re.compile("\w+\s+\w+")  # 1个或多个普通字符1个或多个空字符1个或多个普通字符
print(regex2.findall(string))
# ['abcdefg  acbdgef', 'abcdgfe  cadbgfe']

regex23 = re.compile("\w+")  # 1个或多个普通字符
print(regex23.findall(string))
# ['abcdefg', 'acbdgef', 'abcdgfe', 'cadbgfe']


regex24 = re.compile("\w+\s+")  # 1个或多个普通字符1个或多个空字符
print(regex24.findall(string))
# ['abcdefg  ', 'acbdgef  ', 'abcdgfe  ']

# 实际上是由其并不是python特有的,这是 正则 所特有的 ,
# 任何一门高级语言使用正则都满足这个特点:有括号时只能匹配到括号中的内容,
# 没有括号【相当于在最外层增加了一个括号】。
# 在正则里面 “()” 代表的是分组的意思,一个括号代表一个分组,你只能匹配到"()"中的内容


猜你喜欢

转载自blog.csdn.net/DaYu_LuoYouYan/article/details/80548811
今日推荐