Python 松散正则表达式

Posted sollor525

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 松散正则表达式相关的知识,希望对你有一定的参考价值。

PYTHON允许用户利用所谓的松散正则表达式来完成任务,一个松散正则表达式和一个紧凑正则表达式主要区别表现在两个方面:

·忽略空白符。空格符、制表符、回车符不匹配自身,不参与匹配。

·忽略注释。在松散正则表达式中的注释和put陪你过Python代码中一样:开始于一个#符号,结束于行尾。这种情况下,采用在一个多行字符串中注释,而不是在源代码中注释,以相同的方式工作。

[python]  view plain  copy
  1. >>> pattern = """ 
  2.   ^ # beginning of string 
  3.   M0,3 # thousands - 0 to 3 M's 
  4.   (CM|CD|D?C0,3) # hundreds - 900 (CM), 400 (CD), 0-300 (0 to 3 C's), 
  5.     # or 500-800 (D, followed by 0 to 3 C's) 
  6.   (XC|XL|L?X0,3) # tens - 90 (XC), 40 (XL), 0-30 (0 to 3 X's), 
  7.     # or 50-80 (L, followed by 0 to 3 X's) 
  8.   (IX|IV|V?I0,3) # ones - 9 (IX), 4 (IV), 0-3 (0 to 3 I's), 
  9.     # or 5-8 (V, followed by 0 to 3 I's) 
  10.   $ # end of string 
  11.   """  
  12. >>> re.search(pattern, 'M', re.VERBOSE)  

 

使用松散正则表达式时,必须传递一个额外的参数re.VERBOSE,该参数是定义在re模块中的一个常量,标志着待匹配的正则表达式是一个松散正则表达式。

 

正则表达式的技巧:

^                     匹配字符串的开始

$                    匹配字符串的结尾

\\b                   匹配一个单词的边界

\\d                    匹配任意数字

\\D                   匹配任意非数字字符

x?                   匹配一个可选的x字符

x+                   匹配0次或者多次x字符

xn,m            匹配x字符,至少n次,至多m次

(a|b|c)      要么匹配a,要么匹配b,要么匹配c

(x)                   一般情况下表示一个记忆组(remembered group)。可以利用re.search函数返回对象的groups()函数获取它的值。

以上是关于Python 松散正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

PHP正则表达式替换以@结尾以2个空格结尾的单词[关闭]

在正则表达式中,我只需要在中间允许空格,并在开头和结尾防止空格

C# 正则表达式 - 排除文本开头和结尾的下划线和空格

正则表达式:指定“空格或字符串开头”和“空格或字符串结尾”

JS问题,去掉字符串的前后空格

JavaScript 正则表达式 - 从开头和结尾删除空格