html是:
<div style="background-color:#A7A7A7;text-align:center;">
<span style="color:#FFFFFF;">{{rk_user.name}}のステータス</span>
</div>
我的常规是:
a = r'''
<div style="background-color:#([a-z0-9]+);text-align:center;">
\s*<span style="color:#(.+?);">(.+)</span>
</div>
'''
但是这个Regular与html不匹配,
那有什么不对?
感谢
答案 0 :(得分:2)
为什么不使用正则表达式,你问?
答案 1 :(得分:1)
你应该使正则表达式不区分大小写,因为颜色是#A7A7A7并且你匹配#a7a7a7。
您可以在许多网站上试用:http://regexpal.com/
答案 2 :(得分:0)
至少,您在颜色方面存在区分大小写的问题。另外,您可能想要考虑BoltClock的评论。
答案 3 :(得分:0)
像@BoltClock提到的那样,不建议像这样使用正则表达式。如果不是现在,有时你会后悔的。有很多角落案例会使正则表达式变得复杂,有时也毫无用处。
无论如何,粗略地看一下,对于背景颜色,您使用[a-z0-9]
只会匹配小写字母。但样本有大写。您可能也想要大写[a-zA-Z0-9]
对于其他颜色,为什么不使用相同的?为何选择(.+?)
答案 4 :(得分:0)
除了许多其他人所说的内容之外,你可能还想使用re.UNICODE
标志,因为看起来你有一些日文字符。