正则表达式
正则表达式 (即 RE, or regex) 实质上是嵌入在 Python 中并通过 re
模块提供的一种微型、高度专业化的编程语言。
使用这种微型语言,你可以指定要匹配的可能字符串集的规则;此集合可能包含文本句子、电子邮件地址、号码或其他内容。 然后,你可以提出“此字符串是否与模式整体匹配?”或“此字符串中是否包含有模式的任何匹配?”等等之类问题。你还可以使用正则表达式修改字符串或以各种方式分割字符串。
查找所有匹配
import re
pattern = "ab"
content = "abcabcdbab"
results = re.findall(pattern, content)
print(results) # ['ab', 'ab', 'ab']
pattern = "[0-9_]+" # digit or underscore which occurs multiple times
content = "56abc789h__31"
results = re.findall(pattern, content)
print(results) # ['56', '789', '__31']
# ignore case
pattern = "ab"
content = "AbcabcdbaBB"
results = re.findall(pattern, content, re.IGNORECASE)
print(results) # ['Ab', 'ab', 'aB']
获取第一个匹配
import re
pattern = "[0-9_]+"
content = "56abc789h__31"
result = re.search(pattern, content)
print(result) # <re.Match object; span=(0, 2), match='56'>
print(result.group()) # 56
根据模式分割字符串
import re
pattern = "[0-9_]+"
content = "56abc789h__31hello"
segments = re.split(pattern, content)
print(segments) # ['', 'abc', 'h', 'hello']
根据模式替换子串
import re
pattern = "[0-9_]+"
content = "56abc789h__31hello"
result = re.sub(pattern, '***', content)
print(result) # ***abc***h***hello
代码挑战
尝试修改编辑器中的正则表达式模式,以提取所有的电话号码。
Loading...
> 此处输出代码运行结果