正则表达式(python)——1

 

符号说明举例
literal匹配字符串的值foo
rel|rel2匹配正则表达式rel1或rel2foo|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的反义)data\d+.txt
\w匹配任何数字字母字符,和[A-Za-z0-9]相同(\W是\w的反义)[A-Za-z]\w+
\s匹配任何空白字符,和[\n\t\r\v\f]相同(\S是\s的反义)of\sthe
\b匹配单词边界(\B是\b的反义)\bThe\b
\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], [^\t\n],

          ["-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或多个十进制数

转载于:https://www.cnblogs.com/wangzhijun/archive/2013/03/20/2969251.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值