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