【数据处理】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']

【匹配字符说明】

  1. 点号(.):在正则表达式中,点号是一个特殊字符,它匹配除换行符 \n 之外的任何单个字符(在默认情况下,具体行为可能因正则表达式的模式和标志而异)。例如,a.c 可以匹配 abca1ca#c 等。

  2. 星号(*):星号是一个量词,它表示前面的元素(在这里是点号 .)可以在字符串中出现零次或多次。因此,.* 匹配零个或多个任意字符(除了换行符,除非使用了特定的标志来改变这种行为)。

  3. \w 匹配任何字母数字字符,包括下划线(等价于 [A-Za-z0-9_]
  4. + 表示前面的字符(在这个例子中是 \w)可以连续出现一次或多次

   

1 # 常用组合
2 .* 就表示匹配任意长度的字符串(包括空字符串),其中可以包含任何字符(除了换行符)

 

posted on 2024-12-17 11:32  张凌赫_帅  阅读(53)  评论(0)    收藏  举报

导航