python正则表达式(一)——正则表达式的编写

2022/3/21 17:57:58

本文主要是介绍python正则表达式(一)——正则表达式的编写,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 前言
  • 正则表达式的编写
    • 1.限定符有哪些?
    • 2.正则表达式的给定组件有哪些?
      • (1)匹配一个字符
      • (2)通过选择器‘|’匹配多个可能的字符
      • (3)匹配在字符集中的任何一个字符
      • (4)匹配一个字符串
      • (5)通过选择器‘|’匹配多个可能的字符串
      • (6)匹配多个可能的字符串多次
      • (7)一些可以代表很多字符的特殊字符
      • (8)匹配一些控制字符
    • 3.正则表达式的定位符

前言

示例:今天为大家简单介绍python中如何使用正则表达式。基础概念可以百度或在菜鸟教程查看,这里只介绍实践如何使用。

提示:以下是本篇文章正文内容,下面案例可供参考

正则表达式的编写

1.限定符有哪些?

参考链接:https://www.runoob.com/regexp/regexp-metachar.html
link
限定符:用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配

限定符描述
*匹配前面的子表达式零次或多次
+匹配前面的子表达式一次或多次,最少匹配一次
?匹配前面的子表达式零次或一次,可以不匹配到这个子表达式,匹配也只能匹配一次
{n}规定匹配前面的子表达式n次
{n}规定匹配前面的子表达式n次
{n,}规定最少匹配前面的子表达式n次,最多无限制
{n,m}规定最少匹配前面的子表达式n次,最多匹配子表达式m次

2.正则表达式的给定组件有哪些?

(1)匹配一个字符

# 在字符串中匹配‘o’
pattern = 'o'

用限定符限制匹配次数

# 在字符串中匹配0个或多个‘o’
pattern = 'o*'

(2)通过选择器‘|’匹配多个可能的字符

# 在字符串中匹配‘a’或‘e’或‘i’或‘o’或‘u’
pattern = 'a|e|i|o|u'

用限定符限制匹配次数

# 在字符串中匹配1个或多个‘a’或‘e’或‘i’或‘o’或‘u’,或他们的组合
pattern = '(a|e|i|o|u)+'

(3)匹配在字符集中的任何一个字符

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]+'

(4)匹配一个字符串

# 在字符串中匹配‘python’
pattern = 'python'

用限定符限制匹配次数

# 在字符串中匹配‘python’或‘pythonn’
pattern = 'python?'
# 在字符串中匹配‘python’或‘pythonn’或‘pythonnn’
pattern = 'python{1,3}'

(5)通过选择器‘|’匹配多个可能的字符串

# 在字符串中匹配‘python’或‘java’
pattern = 'python|java'

用限定符限制匹配次数

# 在字符串中匹配‘python’或‘pythonn’或‘pythonnn’或‘java’
pattern = 'python{1,3}|java'

(6)匹配多个可能的字符串多次

# 在字符串中匹配‘python’或‘java’0次或1次
pattern = '(python|java)?'

用限定符限制匹配次数

# 在字符串中匹配‘python’或‘java’或‘pythonpython’
# 或‘pythonjava’ 或‘javapython’或‘javajava’
pattern = '(python|java)+'

(7)一些可以代表很多字符的特殊字符

特殊字符描述
.匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r]要匹配 . ,请使用 .
\s匹配所有空白符,包括换行
\S非空白符,不包括换行
\w匹配字母、数字、下划线。等价于 [A-Za-z0-9_]
\W匹配非字母、数字、下划线。等价于 [^A-Za-z0-9_]
\d匹配一个数字字符。等价于 [0-9]
\D匹配一个非数字字符。等价于 [^0-9]

(8)匹配一些控制字符

控制字符:在字符集中,有一类字符具有这样的特性:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么。这类字符称为可显示字符,如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)

输出结果为
在这里插入图片描述
注意:匹配.和限定符(? * +)还有左右括号()这些特殊符号要用‘\’进行转义才能匹配特殊符号本身

3.正则表达式的定位符

定位符用来限定满足正则表达式的子串在原字符串的位置

特殊字符描述
^匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与 \n 或 \r 之后的位置匹配。
$匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与 \n 或 \r 之前的位置匹配。
\b匹配一个单词边界,即字与空格间的位置
\B非单词边界匹配


这篇关于python正则表达式(一)——正则表达式的编写的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程