示例:今天为大家简单介绍python中如何使用正则表达式。基础概念可以百度或在菜鸟教程查看,这里只介绍实践如何使用。
提示:以下是本篇文章正文内容,下面案例可供参考
参考链接:https://www.runoob.com/regexp/regexp-metachar.html
link
限定符:用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配
限定符 | 描述 |
---|---|
* | 匹配前面的子表达式零次或多次 |
+ | 匹配前面的子表达式一次或多次,最少匹配一次 |
? | 匹配前面的子表达式零次或一次,可以不匹配到这个子表达式,匹配也只能匹配一次 |
{n} | 规定匹配前面的子表达式n次 |
{n} | 规定匹配前面的子表达式n次 |
{n,} | 规定最少匹配前面的子表达式n次,最多无限制 |
{n,m} | 规定最少匹配前面的子表达式n次,最多匹配子表达式m次 |
# 在字符串中匹配‘o’ pattern = 'o'
用限定符限制匹配次数
# 在字符串中匹配0个或多个‘o’ pattern = 'o*'
# 在字符串中匹配‘a’或‘e’或‘i’或‘o’或‘u’ pattern = 'a|e|i|o|u'
用限定符限制匹配次数
# 在字符串中匹配1个或多个‘a’或‘e’或‘i’或‘o’或‘u’,或他们的组合 pattern = '(a|e|i|o|u)+'
ps:字符集中的‘.’只匹配.而不是任意字符
# 在字符串中匹配‘a’或‘e’或‘i’或‘o’或‘u’ # 和'a|e|i|o|u'的功能相同 pattern = '[aeiou]' # 在字符串中匹配除‘a’或‘e’或‘i’或‘o’或‘u’之外的字符 pattern = '[^aeiou]' # 在字符串中匹配'a'到‘z’之间的所有字符 pattern = '[a-z]' # 在字符串中匹配'1'到‘9’之间的所有字符 pattern = '[1-9]' # 在字符串中匹配除'a'到‘z’之间的所有字符的字符 pattern = '[^a-z]'
用限定符限制匹配次数
# 在字符串中匹配1个或多个‘a’或‘e’或‘i’或‘o’或‘u’,或他们的组合 # 例如‘a’或‘aa’或‘ae’或‘eee’或‘aeioo’等等 pattern = '[aeiou]+'
# 在字符串中匹配‘python’ pattern = 'python'
用限定符限制匹配次数
# 在字符串中匹配‘python’或‘pythonn’ pattern = 'python?' # 在字符串中匹配‘python’或‘pythonn’或‘pythonnn’ pattern = 'python{1,3}'
# 在字符串中匹配‘python’或‘java’ pattern = 'python|java'
用限定符限制匹配次数
# 在字符串中匹配‘python’或‘pythonn’或‘pythonnn’或‘java’ pattern = 'python{1,3}|java'
# 在字符串中匹配‘python’或‘java’0次或1次 pattern = '(python|java)?'
用限定符限制匹配次数
# 在字符串中匹配‘python’或‘java’或‘pythonpython’ # 或‘pythonjava’ 或‘javapython’或‘javajava’ pattern = '(python|java)+'
特殊字符 | 描述 |
---|---|
. | 匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r]要匹配 . ,请使用 . 。 |
\s | 匹配所有空白符,包括换行 |
\S | 非空白符,不包括换行 |
\w | 匹配字母、数字、下划线。等价于 [A-Za-z0-9_] |
\W | 匹配非字母、数字、下划线。等价于 [^A-Za-z0-9_] |
\d | 匹配一个数字字符。等价于 [0-9] |
\D | 匹配一个非数字字符。等价于 [^0-9] |
控制字符:在字符集中,有一类字符具有这样的特性:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么。这类字符称为可显示字符,如a、b、c、$、+和空格符等都是可显示字符。
另一类字符却没有这种特性。它们或者在键盘上找不到对应的一个键(当然可以用特殊方式输入),或者当按键以后不能显示键面上的字符。其实,这类字符是为控制作用而设计的,故称为控制字符
特殊字符 | 描述 |
---|---|
\f | 匹配一个换页符。等价于 \x0c 和 \cL。 |
\n | 匹配一个换行符。等价于 \x0a 和 \cJ。 |
\r | 匹配一个回车符。等价于 \x0d 和 \cM。 |
\t | 匹配一个制表符。等价于 \x09 和 \cI |
\v | 匹配一个垂直制表符。等价于 \x0b 和 \cK。 |
例如\n
import re pattern = '[\n]' string2 = '[\n]' string3 = ''' ''' matchobj1 = re.search(pattern,string2) matchobj2 = re.search(pattern,string3) print(matchobj1) print(matchobj2)
输出结果为
注意:匹配.和限定符(? * +)还有左右括号()这些特殊符号要用‘\’进行转义才能匹配特殊符号本身
定位符用来限定满足正则表达式的子串在原字符串的位置
特殊字符 | 描述 |
---|---|
^ | 匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与 \n 或 \r 之后的位置匹配。 |
$ | 匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与 \n 或 \r 之前的位置匹配。 |
\b | 匹配一个单词边界,即字与空格间的位置 |
\B | 非单词边界匹配 |