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` 模块的函数,可以大大提高文本处理效率。