1、以下面的代码为模板,给出调用对应函数(re.match函数、re.search方法)的pyhton例程,完成这两个函数的对比(输入、输出、参数、),,写出每一句的注释: #!/usr/bin/python import re line = "Cats are smarter than dogs" matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I) if matchObj: print "matchObj.group() : ", matchObj.group() print "matchObj.group(1) : ", matchObj.group(1) print "matchObj.group(2) : ", matchObj.group(2) else: print "No match!!"
时间: 2024-02-09 17:08:41 浏览: 75
好的,以下是对应的Python例程,每一句都有注释说明:
```python
#!/usr/bin/python
import re
# 定义一个字符串
line = "Cats are smarter than dogs"
# 使用re.match函数进行匹配,参数分别为正则表达式、要匹配的字符串、匹配模式
# 该正则表达式含义为:以任意字符开头,后跟一个空格和单词"are",再后跟一个空格和任意非空字符,最后以任意字符结尾
# re.M|re.I表示匹配多行和忽略大小写
matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)
# 如果匹配成功,则输出匹配结果
if matchObj:
print "matchObj.group() : ", matchObj.group() # 输出整个匹配到的字符串
print "matchObj.group(1) : ", matchObj.group(1) # 输出第一个括号内匹配到的字符串
print "matchObj.group(2) : ", matchObj.group(2) # 输出第二个括号内匹配到的字符串
else:
print "No match!!" # 如果匹配失败,则输出提示信息
```
其中,re.match函数和re.search方法都可以用来匹配字符串,不同之处在于re.match只匹配字符串的开头,而re.search则匹配整个字符串。在本例中,由于字符串的开头就是要匹配的部分,所以使用re.match函数即可。参数中,r表示将后面的字符串视为raw string,即不对其中的转义字符进行转义;(.*)表示匹配任意个任意字符,.*?表示匹配任意个任意非空字符并尽可能少地匹配;re.M和re.I分别表示匹配多行和忽略大小写。
阅读全文