关于正则表达式的一些问题?

tech2022-08-12  134

1、match()和search()两个方法的区别?

import re word = "Hello World!!!" # re.match函数是从字符串开头开始匹配,匹配失败返回None print(re.match(r"World", word)) # re.search函数扫描整个字符串并返回第一个成功的匹配 print(re.search(r"World", word))

2、如何通过序号和标识来获取想要匹配的某一段内容?

# group(num=0)和groups() r = re.compile("H(.{2})lo (.{5})") print(re.match(r, word).groups()) print(re.match(r, word).group()) print(re.match(r, word).group(1)) print(re.match(r, word).group(2)) # group()不仅可以通过序号,还可以指定名称 r1 = re.compile("(?P<name>Hello) (?P<name1>World)") print(re.search(r1, word).group("name1"))

3、如何对字符串中的数字进行降维打击?

# 将匹配的数字除以 2 def double(matched): value = int(matched.group('value')) return str(value / 2) s = 'A23G4HFD567' print(re.sub(r'(?P<value>\d+)', double, s)) # A11.5G2.0HFD283.5
最新回复(0)