Python 正则表达式匹配任意字符串
正则表达式(Regular Expression)是用于匹配不同模式文本的工具。Python 提供了 re 模块,它提供了很多有用的函数用于处理正则表达式。
在 Python 中,可以使用 re 模块中的 match() 函数来匹配任意的字符串。此外,也可以使用 findall() 函数来查找匹配的所有子字符串。
match() 函数
match() 函数用于匹配字符串的开头,只会匹配第一个匹配项,如果没有匹配项则返回 None。
下面是一个简单的例子,使用 match() 函数匹配字符串开头的 “python”:
import re
str = "python rocks"
match = re.match("python", str)
if match:
print("Match found: ", match.group())
else:
print("No match found")
输出结果为:
Match found: python
在上面的示例中,使用了 re.match() 函数,该函数使用给定的模式在字符串的开头尝试匹配。如果匹配成功,则返回一个匹配对象,否则返回 None。使用匹配对象的 group() 方法可以获取匹配的文本。
下面再来一个匹配手机号的例子:
import re
phone = "13800138000"
pattern = "\d{11}$"
match = re.match(pattern, phone)
if match:
print("Phone number is valid.")
else:
print("Invalid phone number.")
输出结果为:
Phone number is valid.
在上面的示例中,使用了 re.match() 函数和 “\d{11}$” 正则表达式模式。这个正则表达式表示匹配 11 位纯数字号码。
findall() 函数
findall() 函数可以找到匹配给定模式的所有子字符串并返回一个列表。如果没有找到任何匹配,则返回一个空列表。
下面是一个简单的例子,使用 findall() 函数查找给定字符串中所有的数字:
import re
str = "I have 2 apples and 3 bananas"
pattern = "\d+"
matches = re.findall(pattern, str)
print(matches)
输出结果为:
['2', '3']
在上面的示例中,使用了 re.findall() 函数和 “\d+” 正则表达式模式。这个正则表达式表示匹配一个或多个数字字符。
另一个例子,使用 findall() 函数查找所有的单词:
import re
str = "Hello, how are you today?"
pattern = "\w+"
matches = re.findall(pattern, str)
print(matches)
输出结果为:
['Hello', 'how', 'are', 'you', 'today']
在上面的示例中,使用了 re.findall() 函数和 “\w+” 正则表达式模式。这个正则表达式表示匹配一个或多个单词字符。
结论
Python 的 re 模块提供了丰富的正则表达式工具,可以有效地对文本进行匹配和查找操作。使用 match() 函数可以匹配字符串的开头,使用 findall() 函数可以查找所有匹配的子字符串。祝你在使用 Python 正则表达式时顺利!