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