正则表达式可以定义为用于在字符串中搜索模式的字符序列。 re模块提供了在python程序中使用正则表达式的支持。如果使用正则表达式时发生错误,则re模块会引发异常。
必须导入 re 模块才能在python中使用正则表达式函数。
import re
python中使用了以下正则表达式函数。
| SN | 函数 | 说明 |
|---|---|---|
| 1 | match | 此方法将字符串中的正则表达式模式与可选标志匹配。如果在字符串中找到匹配项,则返回true;否则返回false。 |
| 2 | search | 如果在字符串中找到匹配项,则此方法返回匹配对象。 |
| 3 | findall | 它返回一个列表,其中包含字符串中某个模式的所有匹配项。 |
| 4 | split | 返回一个列表,其中每个匹配项中的字符串均已拆分。 |
| 5 | sub | 替换字符串中的一个或多个匹配项。 |
可以通过使用元字符,特殊序列和集合的混合来形成正则表达式。
元字符是具有指定含义的字符。
| Metacharacter | Description | 例 |
|---|---|---|
| [] | 它代表字符集。 | "[a-z]" |
| \ | 它代表特殊的顺序。 | "\r" |
| . | 它表示在某个特定位置存在任何字符。 | "Ja.v." |
| ^ | 它表示出现在字符串开头的模式。 | "^Java" |
| $ | 它表示出现在字符串末尾的模式。 | "point" |
| * | 它表示字符串中模式的零次或多次出现。 | "hello*" |
| + | 它代表字符串中一个或多个模式的出现。 | "hello+" |
| {} | 指定的模式出现的次数。 | "java{2}" |
| | | 它表示存在此字符。 | "java|point" |
| () | 分组 |
特殊序列是包含\后跟一个字符的序列。
| 字符 | 说明 |
|---|---|
| \A | 如果指定的字符出现在字符串的开头,则返回匹配项。 |
| \b | 如果指定的字符出现在字符串的开头或结尾,则返回匹配项。 |
| \B | 如果指定的字符出现在字符串的开头而不是结尾,则返回匹配项。 |
| \d | 如果字符串包含数字[0-9],则返回匹配项。 |
| \D | 如果字符串中不包含数字[0-9],则返回匹配项。 |
| \s | 如果字符串包含任何空格字符,则返回匹配项。 |
| \S | 如果字符串不包含任何空格字符,则返回匹配项。 |
| \w | 如果字符串包含任何单词字符,则返回匹配项。 |
| \W | It r如果字符串不包含任何单词,则返回一个匹配项。 |
| \Z | 如果指定的字符位于字符串的末尾,则返回匹配项。 |
set是在方括号内给出的一组字符。它代表特殊含义。
| SN | 设置 | 说明 |
|---|---|---|
| 1 | [arn] | 如果字符串包含集合中的任何指定字符,则返回匹配项。 |
| 2 | [a-n] | 如果字符串包含a到n之间的任何字符,则返回匹配项。 |
| 3 | [^ arn] | 如果字符串包含a,r和n以外的字符,则返回匹配项。 |
| 4 | [0123] | 如果字符串包含任何指定的数字,则返回匹配项。 |
| 5 | [0-9] | 如果字符串包含0到9之间的任何数字,则返回匹配项。 |
| 6 | [0-5] [0-9] | 如果字符串包含00到59之间的任何数字,则返回匹配项。 |
| 10 | [a-zA-Z] | 如果字符串包含任何字母(小写或大写),则返回匹配项。 |
考虑以下示例。
import re str = "How are you. How is everything" matches = re.findall("How", str) print(matches) print(matches)
输出:
['How', 'How']
匹配对象包含有关搜索和输出的信息。如果找不到匹配项,则返回None对象。
import re str = "How are you. How is everything" matches = re.search("How", str) print(type(matches)) print(matches) #matches is the search object
输出:
<class '_sre.SRE_Match'> <_sre.SRE_Match object; span=(0, 3), match='How'>
与Match对象关联的方法如下。
import re str = "How are you. How is everything" matches = re.search("How", str) print(matches.span()) print(matches.group()) print(matches.string)
输出:
(0, 3) How How are you. How is everything
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)