python正则表达式多行匹配

要被匹配的文字是这样的

<em style="width:100px;text-align:left;padding-left:5px;">馨竹香米</em>

                <em style="width:80px;">2.90</em>

                <em style="width:80px;">2.93</em>

                <em style="width:80px;">2.95</em>

                <em style="width:80px;">普通</em>

                <em style="width:80px;">斤</em>

                <em style="width:106px;">2016-01-01</em>

                <em style="width:60px;">&nbsp;</em>

我想用类似这样的匹配规则写出来:

<em style="width:100px;text-align:left;padding-left:5px;">(.*?)</em>

                <em style="width:80px;">(.*?)</em>

                <em style="width:80px;">(.*?)</em>

                <em style="width:80px;">(.*?)</em>

                <em style="width:80px;">(.*?)</em>

                <em style="width:80px;">(.*?)</em>

                <em style="width:106px;">(.*?)</em>

                <em style="width:60px;">&nbsp;</em>


只匹配一行的话是可以的,比如说匹配规则这么写

<em style="width:100px;text-align:left;padding-left:5px;">(.*?)</em>

但是照我想要的那个写法的时候就显示匹配不到了。


慕尼黑8549860
浏览 437回答 2
2回答

墨色风雨

import ress = """字符串"""res = re.compile("<em style=.*?;\">(.*?)</em>")print res.findall(ss)

胡说叔叔

python re模块有个flag就是开启多行匹配。自行google解决
打开App,查看更多内容
随时随地看视频慕课网APP