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