📅  最后修改于: 2023-12-03 15:22:48.806000             🧑  作者: Mango
正则表达式在Python中非常强大,可以用来搜索、匹配和替换文本。在单个正则表达式中,可以包含多个子表达式,以实现更复杂的模式匹配。
子表达式是正则表达式中的一段子串,用括号来定义。例如, (ab)+
表示一个或多个连续的 "ab" 字符串。
在单个正则表达式中,可以包含多个子表达式,用括号来分隔它们。例如, (ab)+|(cd)+
表示一个或多个连续的 "ab" 或一个或多个连续的 "cd"。
在Python中,可以使用 re.findall()
函数来搜索文本中所有匹配的子表达式。下面是一个示例代码:
import re
text = "aabbbccccddddd"
matches = re.findall("(ab)+|(cd)+", text)
print(matches)
输出结果:
[('ab', ''), ('', 'cd')]
子表达式还可以通过 (?P<name>)
语法来指定名称。例如, (?P<word>\w+)
表示一个或多个字母或数字字符,并将这个子表达式的名称指定为 "word"。
在Python中,可以使用 re.search()
函数来查找匹配的子表达式,并使用 groupdict()
方法来获取每个子表达式的名称和值。下面是一个示例代码:
import re
text = "Hello, world!"
match = re.search("(?P<greeting>\w+), (?P<subject>\w+)!", text)
print(match.groupdict())
输出结果:
{'greeting': 'Hello', 'subject': 'world'}
在单个正则表达式中使用多个子表达式,可以实现更复杂的模式匹配。在Python中,可以使用 re.findall()
函数来搜索文本中所有匹配的子表达式,并使用 re.search()
函数和 groupdict()
方法来查找匹配的子表达式并获取每个子表达式的名称和值。