【数据处理】re 正则表达式
【re.compile】
是 Python 中 re(正则表达式)模块的一个函数,它用于将一个字符串形式的正则表达式编译成一个 Pattern 对象。这样做的好处是可以提高正则表达式的匹配效率,尤其是当你需要多次使用同一个正则表达式时。
当你调用 re.compile 时,你传递一个字符串作为参数,这个字符串包含了你要编译的正则表达式。然后,re.compile 会返回一个 Pattern 对象,你可以使用这个对象来调用各种匹配和搜索方法,如 match()、search()、findall()、finditer() 等。
1 import re 2 3 # 编译一个正则表达式,用于匹配一个或多个数字 4 pattern = re.compile(r'\d+') 5 6 # 使用 Pattern 对象的 search 方法在字符串中搜索匹配项 7 match = pattern.search("There are 123 apples and 456 oranges.") 8 9 if match: 10 # 如果找到了匹配项,打印出匹配的内容 11 print("Found a match:", match.group()) 12 else: 13 # 如果没有找到匹配项,打印一条消息 14 print("No match found.")
【re.findall】
findall 是 re 模块中的一个函数,用于在字符串中查找所有与正则表达式匹配的子串,并返回一个列表。
1 import re 2 3 text = "Hello, world! This is a test: 123_abc." 4 matches = re.findall(r'\w+', text) 5 print(matches) 6 7 ['Hello', 'world', 'This', 'is', 'a', 'test', '123_abc']
【匹配字符说明】
-
点号(
.):在正则表达式中,点号是一个特殊字符,它匹配除换行符\n之外的任何单个字符(在默认情况下,具体行为可能因正则表达式的模式和标志而异)。例如,a.c可以匹配abc、a1c、a#c等。 -
星号(
*):星号是一个量词,它表示前面的元素(在这里是点号.)可以在字符串中出现零次或多次。因此,.*匹配零个或多个任意字符(除了换行符,除非使用了特定的标志来改变这种行为)。 \w匹配任何字母数字字符,包括下划线(等价于[A-Za-z0-9_])+表示前面的字符(在这个例子中是\w)可以连续出现一次或多次
1 # 常用组合 2 .* 就表示匹配任意长度的字符串(包括空字符串),其中可以包含任何字符(除了换行符)
浙公网安备 33010602011771号