Python正则表达式
- 介绍:
正则表达式是各种字符串操作的强大工具。
正则表达式是一种特定于领域的语言(DSL),作为大多数现代编程语言的库而不仅仅是 Python。
正则表达式对于以下两种主要任务是很有用的:
- 验证字符串是否匹配模式(例如,字符串具有电子邮件地址的格式)
- 对字符串中进行替换(如将所有美式拼写改为英式拼写)。
- Python正则表达式
Python 中的正则表达式可以使用 re 模块来访问,它是标准库的一部分。定义正则表达式之后,可以使用 re.match 函数来确定字符串的开头是否匹配。如果匹配,match 返回表示匹配的对象,否则返回 None。 为了避免在处理正则表达式时出现混淆,我们使用原始字符串 r"expression"。原始字符串不会转义任何东西,这使得使用正则表达式更容易。 下面的例子检查字符串是否匹配 "spam",如果是,则打印 "Match"。
import re pattern = r"spam" if re.match(pattern, "spamspamspam"): print("Match") else: print("No match")
其他的正则函数是 re.search 和 re.findall。re.search 函数在字符串中的任何位置找到匹配的模式;re.findall 函数返回一个与模式匹配的所有子串的列表。
例如:
import re pattern = r"spam" if re.match(pattern, "eggspamsausagespam"): print("Match") else: print("No match") if re.search(pattern, "eggspamsausagespam"): print("Match") else: print("No match") print(re.findall(pattern, "eggspamsausagespam"))
在上面的示例中,匹配函数与模式不匹配,因为它从字符串的开头开始匹配。search 函数找到了匹配的字符串。函数 re.finditer 和 re.findall 类似,不过它返回一个迭代器,而不是一个列表。使用正则表达式的最重要的 re 方法是 sub。
语法:
re.sub(pattern, repl, string, max=0)
这个方法用 repl 替换字符串中所有出现的模式,除非提供 max限定修改数量。sub 方法返回修改后的字符串。
例如
import re str = "My name is Loen. Hi Loen." pattern = r"Loen" newstr = re.sub(pattern, "xueyun", str) print(newstr)