加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式(python)——1

发布时间:2020-12-14 01:39:23 所属栏目:百科 来源:网络整理
导读:表1 常用正则表达式符号和特殊字符 符号 说明 举例 literal 匹配字符串的值 foo rel|rel2 匹配正则表达式rel1或rel2 foo|bar . 匹配任何字符(换行符除外) b.b ^ 匹配字符串开始 ^Doctor $ 匹配字符串结尾 /bin/*sh$ * 匹配前面出现的正则表达式0次或多次 [A-Z
表1 常用正则表达式符号和特殊字符
符号 说明 举例
literal 匹配字符串的值 foo
rel|rel2 匹配正则表达式rel1或rel2 foo|bar
. 匹配任何字符(换行符除外) b.b
^ 匹配字符串开始 ^Doctor
$ 匹配字符串结尾 /bin/*sh$
* 匹配前面出现的正则表达式0次或多次 [A-Za-z0-9]*
+ 匹配前面出现的正则表达式1次或多次 [a-z]+.com
? 匹配前面出现的正则表达式0次或1次 goo?
{N} 匹配前面出现的正则表达式N次 [0-9]{3}
{M,N} 匹配重复出现M次到N次的正则表达式 [0-9]{5,9}
[...] 匹配字符组里出现的任意一个字符 [aeiou]
[..X-Y..] 匹配从字符X到Y中的任意一个字符 [0-9],[A-Za-z]
[^...] 不匹配此字符集中出现的任何一个字符,包括某一范围的字符(如果在此字符集中出现) [^aeiou],[^A-Za-z]
(*|+|?|{})? 用于上面出现的任何“非贪婪”版本,重复匹配次数符号(*,+,?,{}) .*?[a-z]
(...) 匹配封闭括号中正则表达式,并保存为子组 ([0-9]{3})?,f(oo|u)bar

特殊字符
符号 说明 举例
d 匹配任何数字,和[0-9]一样(D是d的反义) datad+.txt
w 匹配任何数字字母字符,和[A-Za-z0-9]相同(W是w的反义) [A-Za-z]w+
s 匹配任何空白字符,和[ntrvf]相同(S是s的反义) ofsthe
b 匹配单词边界(B是b的反义) bTheb
nn 匹配已保存的子组(请参考(...)) price:16
c 逐一匹配特殊字符c(即取消它的特殊含义,按字面匹配).,,* .,*
A (Z) 匹配字符串的起始(结束) ADear

1. 用管道符号(|)匹配多个正则表达式模式:

它的意思是选择被管道符号分隔的多个不同的正则表达式中的一个(相当于逻辑或)。例如:

  正则表达式    匹配的字符串

    at|home    at,home

    r2d2|c3p0   r2d2,c3b0

2. 匹配任意一个单个的字符(.)

点符号或句号(.)符号匹配除换行符(NEWLINE)外的任意一个单个字符

  正则表达式    匹配的字符串

    f.o      在"f"和"o"中间的任何字符,如fao,f9o,f#o等

3. 从字符串的开头或结尾或单词边界开始匹配(^/$ /b /B)

  正则表达式    匹配的字符串

   ^From      匹配任何以From开水的字符串

   /bin/tcsh$     匹配任何以/bin/tcsh结束的字符串

   ^Subject:hi$   匹配仅由Subject:hi组成的字符串

   bthe       匹配任何以"the"开始的字符串

   Bthe        任意包含"the"但不以"the"开通的单词

  b和B是用来匹配单词边界。两者之间的区别是,b匹配的模式是一个单词边界,就是说,与之对应的模式一定在一个单词的开头,不论这个单词的前面是有字符(该词在一个字符串中间),还是没有字符(该单词在一行的起始处)。B只匹配出现在一个单词中间的模式(即不再单词边界上的字符).

4. 创建字符类([])

  正则表达式    匹配的字符串

   b[aeiu]t     bat,bet,bit,but

 [cr][23][dp][o2]  如c3do,r3p2,r2d2等

5. 指定范围(-)和否定(^)

如: z.[0-9],[^tn],

["-a]:在ASCII字符集中,码值在"和a之间的任意一个字符

6. 使用闭包操作符(*,{})实现多次出现/重复匹配

  *:匹配它左边那个正则表达式出现0次或者0次以上的情况(kleene闭包操作符);

  +:匹配它左边那个正则表达式至少出现一次的情况(正闭包操作符);

  ?:匹配它左边那个正则表达式出现0次或1次的情况.

  {}:如果是一个值,表示匹配N次出现;如果是一对值,即{M,N},就表示匹配M次到N次出现。

  正则表达式    匹配的字符串

   [dn]ot?     'd'或'n'后面接'o',最后是最多一个字符't',即do,no,dot,not

   0?[1-9]      1-9中的任意一位数字,前面可能还有个'0'

   [0-9]{15,16}   15或16位数字,例如:信用卡号码

7. 特殊字符集

  正则表达式    匹配的字符串

   w+-d+    一个由字母或数字组成的字符串,和至少一个数字,两部分中间由'-'相连

   [A-Za-z]w+   第一个字符是字母,其余字符是字母或数字

  d{3}-d{3}-d{4}  美国电话号码,例如:800-555-1212

  w+@w+.com  简单的XXX@YYY.com格式的电子邮件地址

8.用圆括号()建组

  一对圆括号()和正则表达式一起使用时可以实现以下任意一个(或两个)功能:

  1.对正则表达式进行分组

  2.匹配子组

  正则表达式    匹配的字符串

   d+(.d*)?   表示简单浮点数,即任意个十进制数字,后面跟一个可选的小数点,然后跟0或多个十进制数

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读