在计算机科学中,正则表达式是一种描述字符串匹配模式的方法。正则表达式通常被用来检索或替换符合特定模式的文本。
Python中提供了re模块,可以使用re模块的方法来对字符串进行正则匹配
例如,下面代码中,“^hello”表示匹配以hello开头的字符串。
import re
str1 = "hello world"
match_obj = re.match("^hello", str1)
if match_obj:
print(match_obj.group()) # 输出结果:hello
else:
print("No match")
例如,下面代码中,查找字符串中的数字。其中,“\d”表示匹配0-9的数字,“+”表示匹配前面一个字符1次或多次。
import re
str2 = "hello 123 world"
search_obj = re.search("\d+", str2)
if search_obj:
print(search_obj.group()) # 输出结果:123
else:
print("No match")
下面介绍一些常见的正则表达式符号及其含义。
点(.): 匹配任意一个字符,除了换行符\n。
星号(*): 表示匹配前面一个字符0次或多次。
加号(+): 表示匹配前面一个字符1次或多次。
问号(?): 表示匹配前面一个字符0次或1次。
花括号({n}): 表示匹配前面一个字符n次。
花括号({n,m}): 表示匹配前面一个字符至少n次,至多m次。
方括号([...]): 表示匹配方括号中的任意一个字符。
反斜杠(\): 表示转移字符,后面跟随的字符表示特殊字符。
下面提供一些示例。
import re
phone1 = "13700000000"
phone2 = "1370000000"
pattern = "^1\d{10}$"
if re.match(pattern, phone1):
print("Phone number 1 is valid")
else:
print("Phone number 1 is not valid")
if re.match(pattern, phone2):
print("Phone number 2 is valid")
else:
print("Phone number 2 is not valid")
输出结果:
Phone number 1 is valid
Phone number 2 is not valid
import re
ip1 = "192.168.1.1"
ip2 = "192.168.1.256"
pattern = "^(([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5])$"
if re.match(pattern, ip1):
print("IP address 1 is valid")
else:
print("IP address 1 is not valid")
if re.match(pattern, ip2):
print("IP address 2 is valid")
else:
print("IP address 2 is not valid")
输出结果:
IP address 1 is valid
IP address 2 is not valid
以上是re模块的正则匹配的表达式详解的完整攻略,希望能够对解决相关问题有所帮助。
本文链接:http://task.lmcjl.com/news/14982.html