求解释一下这段正则表达式?

In [78]: s
Out[78]: '    <meta http-equiv="Content-Type" content="text/html; charset=gbk"'
In [79]: b = re.compile("<meta.*content=.*charset=(?P<charset>[^;\s]+)", flags=re.I)
In [80]: b.search(s).group(1)
Out[80]: 'gbk"'
阅读 2.1k
2 个回答

[]:字符集合。匹配所包含的任意一个字符。
[^]:负值字符集合。匹配未包含的任意字符。例如, '[^abc]'可以匹配 "plain" 中的'p''l''i''n'
;:就匹配分号
\s :匹配任何空白字符,包括空格、制表符、换页符等等
整体[^;\s]匹配非;与非空白字符的其他任何字符

推荐两个正则学习网站
Regulex
RegExr

(?P<charset>1+)这是我不懂之处,查阅博客之后才知道这个算是为分组命名,在.group('charset')这里将原先的分组的名字当做字符串参数传入,可以准确获取到正则表达式匹配到的值。


  1. ;s
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题