我的正则表达式对我的字符串没有做任何事情.
蟒蛇
data = 'random\n<article stuff\n</article>random stuff'
datareg = re.sub(r'.*<article(.*)</article>.*', r'<article\1</article>', data, flags=re.MULTILINE)
print datareg
Run Code Online (Sandbox Code Playgroud)
我明白了
random
<article stuff
</article>random stuff
Run Code Online (Sandbox Code Playgroud)
我想要
<article stuff
</article>
Run Code Online (Sandbox Code Playgroud)
Ble*_*der 12
re.MULTILINE 实际上并没有按照你想要的方式制作你的正则表达式多行.
指定时,模式字符
'^'匹配字符串的开头和每行的开头(紧跟在每个换行符之后); 并且模式字符'$'在字符串的末尾和每行的末尾(紧接在每个换行符之前)匹配.默认情况下,'^'仅匹配字符串的开头,并且'$'仅匹配字符串的结尾,紧接在字符串末尾的换行符(如果有)之前.
re.DOTALL 作用:
使
'.'特殊字符与任何字符匹配,包括换行符; 没有此标志,'.'将匹配除换行符之外的任何内容.
更改flags=re.MULTILINE到flags=re.DOTALL你的正则表达式会工作.
| 归档时间: |
|
| 查看次数: |
12724 次 |
| 最近记录: |