正则表达式这个东西,日技让强大是正则强大,但写出来跟个表情符号一样。表达百倍自己写的读性表达式,过一个月来看,提高自己都不记得是日技让什么意思了。比如下面这个: 有没有什么办法提高正则表达式的可读性呢?我们知道,提高代码可读性的表达百倍方法之一就是写注释,亿华云计算那么正则表达式能不能写注释呢?读性 例如对于下面这个句子: 我要提取其中的日技让密码123kingname456,那么我的正则正则表达式可能是这样的: 我能不能把它写成这样: pattern = : # 开始标志 (.*?) #从开始标志的下一个字符开始的任意字符 , #遇到英文逗号就停止 这样写就清晰多了,每个部分是香港云服务器表达百倍什么作用全都清清楚楚。 但显然直接使用肯定什么都提取不到,读性如下图所示: 但我今天在逛Python正则表达式文档的提高时候,发现了一个好东西: 使用它,可以让你的正则表达式拥有注释,如下图所示: re.VERBOSE也可以简称为re.X,如下图所示: 本文最开头的复杂正则表达式,使用了注释以后,就会变得更可读: pattern = r""" ( # code (capture) # BEGIN multicode (?: \( \s* )? # maybe open paren and maybe space # code [A-Z]*H # prefix \d+ # digits [a-z]* # suffix (?: # maybe followed by other codes, \s* \+ \s* # ... plus-separated # code [A-Z]*H # prefix \d+ # digits [a-z]* # suffix ) (?: \s* [\):+] )? # maybe space and maybe close paren or colon or plus # END multicode ) ( .*? ) # message (capture): everything ... (?= # ... up to (but excluding) ... # ... the next code # BEGIN multicode (?: \( \s* )? # maybe open paren and maybe space # code [A-Z]*H # prefix \d+ # digits [a-z]* # suffix (?: # maybe followed by other codes, \s* \+ \s* # ... plus-separated # code [A-Z]*H # prefix \d+ # digits [a-z]* # suffix ) (?: \s* [\):+] )? # maybe space and maybe close paren or colon or plus # END multicode # (but not when followed by punctuation) (?! [^\w\s] ) # ... or the end | $ )