一、re.match()函数的使用
在Python re模块中,有一个常用函数re.match()用于匹配字符串的开头是否符合正则表达式规则。具体使用方式是:
import re result = re.match(pattern, string)
其中,pattern表示正则表达式的规则,string表示要匹配的字符串,函数返回一个match对象,可以根据match对象的方法获取匹配的结果。
二、匹配单个字符
在正则表达式中使用"."表示可以匹配任意一个字符,下面是一个示例:
import re result = re.match(".", "hello") print(result.group()) # Output: "h"
上述代码中,正则表达式"."匹配"hello"字符串的第一个字符"h",因此输出结果为"h"。
三、匹配指定字符集
在正则表达式中使用"[]"表示可以匹配指定的字符集,下面是一个示例:
import re result = re.match("[abc]", "hello") print(result.group()) # Output: None result = re.match("[abc]", "bob") print(result.group()) # Output: "b"
上述代码中,正则表达式"[abc]"匹配"hello"字符串中的任意一个字符,由于"hello"字符串的第一个字符不在指定的字符集中,因此result.group()返回None;而正则表达式"[abc]"匹配"bob"字符串的第一个字符"b",因此输出结果为"b"。
四、匹配字符集中的任意一个字符
在正则表达式中使用"|"表示可以匹配字符集中的任意一个字符,下面是一个示例:
import re result = re.match("[abc|def]", "hello") print(result.group()) # Output: None result = re.match("[abc|def]", "dog") print(result.group()) # Output: "d"
上述代码中,正则表达式"[abc|def]"匹配"hello"字符串中的任意一个字符,由于"hello"字符串的第一个字符不在指定的字符集中,因此result.group()返回None;而正则表达式"[abc|def]"匹配"dog"字符串的第一个字符"d",因此输出结果为"d"。
五、匹配数字或字母
在正则表达式中使用"\d"表示可以匹配数字,使用"\w"表示可以匹配字母,下面是一个示例:
import re result = re.match("\d", "hello") print(result.group()) # Output: None result = re.match("\d", "123") print(result.group()) # Output: "1" result = re.match("\w", "_hello") print(result.group()) # Output: "_"
上述代码中,正则表达式"\d"匹配"hello"字符串的第一个字符,由于该字符不是数字,因此result.group()返回None;而正则表达式"\d"匹配"123"字符串的第一个字符"1",因此输出结果为"1"。类似地,正则表达式"\w"匹配"_hello"字符串的第一个字符"_",因此输出结果为"_"。
六、匹配任意空白字符
在正则表达式中使用"\s"表示可以匹配任意空白字符,包括空格、制表符、换行符等等,下面是一个示例:
import re result = re.match("\s", "hello") print(result.group()) # Output: None result = re.match("\s", " hello") print(result.group()) # Output: " "
上述代码中,正则表达式"\s"匹配"hello"字符串的第一个字符,由于该字符不是空白字符,因此result.group()返回None;而正则表达式"\s"匹配" hello"字符串的第一个字符空格" ",因此输出结果为" "。
七、匹配重复出现的字符
在正则表达式中使用"*"、"+"、"?"、"{m}"和"{m,n}"等符号表示可以匹配相应字符或字符集的重复出现,下面是几个示例:
import re result = re.match("hi*", "hiii") print(result.group()) # Output: "hiii" result = re.match("hi*", "hello") print(result.group()) # Output: "h" result = re.match("hi+", "hello") print(result.group()) # Output: None result = re.match("hi+", "hiiii") print(result.group()) # Output: "hiiii" result = re.match("hi?", "hello") print(result.group()) # Output: "h" result = re.match("hi{2}", "hello") print(result.group()) # Output: None result = re.match("hi{2}", "hii") print(result.group()) # Output: "hii" result = re.match("hi{2,3}", "hi") print(result.group()) # Output: None result = re.match("hi{2,3}", "hii") print(result.group()) # Output: "hii" result = re.match("hi{2,3}", "hiii") print(result.group()) # Output: "hiii"
上述代码中,每个正则表达式规则中都包含了"hi"字符串,但是使用了不同的符号匹配重复出现的字符。通过这些示例,可以了解到,"*"表示匹配0或多次,"+"表示匹配1或多次,"?"表示匹配0或1次,"{m}"表示匹配m次,"{m,n}"表示匹配m~n次。
八、匹配非数字字符
在正则表达式中使用"\D"表示可以匹配非数字字符,下面是一个示例:
import re result = re.match("\D", "hello") print(result.group()) # Output: "h" result = re.match("\D", "123") print(result.group()) # Output: None
上述代码中,正则表达式"\D"匹配"hello"字符串的第一个字符"h",由于该字符不是数字字符,因此输出结果为"h";而正则表达式"\D"匹配"123"字符串的第一个字符"1",由于该字符是数字字符,因此result.group()返回None。
九、总结
本文介绍了Python re.match()函数的使用以及一些常见的正则表达式规则,在实际工作中可以根据实际情况使用不同的正则表达式规则进行匹配操作。