我在正则表达式方面很薄弱,现在我正在调试一些代码,代码正在使用如下表达式搜索字符串:
r"coding[:=]\s*([-\w.]+)"
它搜索什么样的字符串?
对我来说,它似乎与以下内容相匹配:
coding= xxxxx
但我不知道神秘人物的确切含义。任何人都可以更详细地解释一下吗?
让我们分解一下:
coding
:文字文本匹配,只有“编码”这个词会做[:=]
: 字符组,冒号“:”或等号“=”匹配\s*
: 0 个或多个空格字符;空格和制表符,但如果这样配置,也可以匹配换行符。(..)
:匹配组,内容将作为匹配组进行进一步处理。[-\w.]+
:组中的一个或多个字符,匹配一个破折号“-”,一个点“.” 或任何文字字符;\w
是一个字符类,通常匹配字母“a”到“z”(大写和小写)、数字“0”到“9”和下划线“_”。如果您打开 unicode 支持(默认情况下在 Python 3 中打开),则\w
该类会捕获更多内容。在 Unicode 数据库中分类为字母数字的任何字符都将匹配。
匹配示例:
foobar320_42spam_eggs
something-or-other
whatever.42
它将匹配以下内容:
coding
+ 其中一个:
或=
+ 零个或多个空格(\s
= 空格、制表符、任何空白字符) + 一些文本,也可能包含.
and -
。
正则表达式的示例表达式http://rubular.com/r/cqE6HTD8Vb