python3正则表达式(python 正则表达)

## Python3 正则表达式### 简介正则表达式是一种强大的文本处理工具,它允许你使用特定模式来搜索、匹配、替换和提取文本。在 Python3 中,我们可以使用 `re` 模块来使用正则表达式。### 基本语法#### 1. 字符匹配

`.` : 匹配除换行符以外的任意单个字符。

`[]` : 匹配括号内任意一个字符,例如 `[abc]` 匹配字符 'a'、'b' 或 'c'。

`[^]` : 匹配不在括号内的任意字符,例如 `[^abc]` 匹配除了 'a'、'b'、'c' 以外的字符。

`

` : 匹配前一个字符零次或多次。

`+` : 匹配前一个字符一次或多次。

`?` : 匹配前一个字符零次或一次。

`{m}`: 匹配前一个字符 m 次。

`{m,n}`: 匹配前一个字符至少 m 次,至多 n 次。#### 2. 特殊字符

`\d` : 匹配任何数字,相当于 `[0-9]`。

`\D` : 匹配任何非数字字符,相当于 `[^0-9]`。

`\s` : 匹配任何空白字符,包括空格、制表符、换行符等。

`\S` : 匹配任何非空白字符。

`\w` : 匹配任何字母数字字符,相当于 `[a-zA-Z0-9_]`。

`\W` : 匹配任何非字母数字字符,相当于 `[^a-zA-Z0-9_]`。#### 3. 定位符

`^` : 匹配字符串的开头。

`$` : 匹配字符串的结尾。

`\b` : 匹配单词边界。

`\B` : 匹配非单词边界。### 常用函数#### 1. `re.match(pattern, string, flags=0)`尝试从字符串的

开头

匹配正则表达式,如果匹配成功,返回一个匹配对象,否则返回 None。```python import restring = "hello world" match = re.match(r"hello", string)if match:print(match.group()) # 输出: hello ```#### 2. `re.search(pattern, string, flags=0)`扫描整个字符串,找到第一个匹配正则表达式的部分,如果匹配成功,返回一个匹配对象,否则返回 None。```python import restring = "hello world" match = re.search(r"world", string)if match:print(match.group()) # 输出: world ```#### 3. `re.findall(pattern, string, flags=0)`找到所有匹配正则表达式的部分,并以列表的形式返回。```python import restring = "hello world hello python" matches = re.findall(r"hello", string)print(matches) # 输出: ['hello', 'hello'] ```#### 4. `re.sub(pattern, repl, string, count=0, flags=0)`将字符串中所有匹配正则表达式的部分替换成指定的字符串。```python import restring = "hello world" new_string = re.sub(r"world", "python", string)print(new_string) # 输出: hello python ```### 编译正则表达式为了提高效率,可以将常用的正则表达式编译成正则表达式对象。```python import repattern = re.compile(r"\d+")matches = pattern.findall("There are 100 cars.")print(matches) # 输出: ['100'] ```### flags 参数`re` 模块中的函数都支持 `flags` 参数,用于修改正则表达式的匹配行为,常用 flags 如下:

`re.IGNORECASE` : 忽略大小写匹配。

`re.DOTALL` : 使 `.` 匹配包括换行符在内的任意字符。

`re.MULTILINE` : 多行匹配,影响 `^` 和 `$` 的行为。### 总结Python3 的 `re` 模块提供了强大的正则表达式功能,能够高效地处理文本。熟练掌握正则表达式语法和 `re` 模块的函数,可以大大提高文本处理效率。

Python3 正则表达式

简介正则表达式是一种强大的文本处理工具,它允许你使用特定模式来搜索、匹配、替换和提取文本。在 Python3 中,我们可以使用 `re` 模块来使用正则表达式。

基本语法

1. 字符匹配* `.` : 匹配除换行符以外的任意单个字符。 * `[]` : 匹配括号内任意一个字符,例如 `[abc]` 匹配字符 'a'、'b' 或 'c'。 * `[^]` : 匹配不在括号内的任意字符,例如 `[^abc]` 匹配除了 'a'、'b'、'c' 以外的字符。 * `*` : 匹配前一个字符零次或多次。 * `+` : 匹配前一个字符一次或多次。 * `?` : 匹配前一个字符零次或一次。 * `{m}`: 匹配前一个字符 m 次。 * `{m,n}`: 匹配前一个字符至少 m 次,至多 n 次。

2. 特殊字符* `\d` : 匹配任何数字,相当于 `[0-9]`。 * `\D` : 匹配任何非数字字符,相当于 `[^0-9]`。 * `\s` : 匹配任何空白字符,包括空格、制表符、换行符等。 * `\S` : 匹配任何非空白字符。 * `\w` : 匹配任何字母数字字符,相当于 `[a-zA-Z0-9_]`。 * `\W` : 匹配任何非字母数字字符,相当于 `[^a-zA-Z0-9_]`。

3. 定位符* `^` : 匹配字符串的开头。 * `$` : 匹配字符串的结尾。 * `\b` : 匹配单词边界。 * `\B` : 匹配非单词边界。

常用函数

1. `re.match(pattern, string, flags=0)`尝试从字符串的**开头**匹配正则表达式,如果匹配成功,返回一个匹配对象,否则返回 None。```python import restring = "hello world" match = re.match(r"hello", string)if match:print(match.group())

输出: hello ```

2. `re.search(pattern, string, flags=0)`扫描整个字符串,找到第一个匹配正则表达式的部分,如果匹配成功,返回一个匹配对象,否则返回 None。```python import restring = "hello world" match = re.search(r"world", string)if match:print(match.group())

输出: world ```

3. `re.findall(pattern, string, flags=0)`找到所有匹配正则表达式的部分,并以列表的形式返回。```python import restring = "hello world hello python" matches = re.findall(r"hello", string)print(matches)

输出: ['hello', 'hello'] ```

4. `re.sub(pattern, repl, string, count=0, flags=0)`将字符串中所有匹配正则表达式的部分替换成指定的字符串。```python import restring = "hello world" new_string = re.sub(r"world", "python", string)print(new_string)

输出: hello python ```

编译正则表达式为了提高效率,可以将常用的正则表达式编译成正则表达式对象。```python import repattern = re.compile(r"\d+")matches = pattern.findall("There are 100 cars.")print(matches)

输出: ['100'] ```

flags 参数`re` 模块中的函数都支持 `flags` 参数,用于修改正则表达式的匹配行为,常用 flags 如下:* `re.IGNORECASE` : 忽略大小写匹配。 * `re.DOTALL` : 使 `.` 匹配包括换行符在内的任意字符。 * `re.MULTILINE` : 多行匹配,影响 `^` 和 `$` 的行为。

总结Python3 的 `re` 模块提供了强大的正则表达式功能,能够高效地处理文本。熟练掌握正则表达式语法和 `re` 模块的函数,可以大大提高文本处理效率。

标签列表