2012-09-01 127 views
1

我在正则表达式非常微弱,现在我调试一些代码,该代码与像一个表达式搜索字符串:这个正则表达式是什么意思?

r"coding[:=]\s*([-\w.]+)" 

它寻求什么样的绳子吗?

对我来说,这似乎符合这样的:

coding= xxxxx 

,但我不知道的神秘字符的确切含义。任何人都可以更详细地解释一下吗?

回答

8

让我们打破这:

  • coding:文字文本匹配,只有两个字“编码”会做
  • [:=]:字符组,一个冒号“:”或等号“=”匹配
  • \s*:0或更多空白字符;空格和制表符,但如果这样配置,也可以匹配换行符。
  • (..):匹配组,该内容将作为匹配组用于进一步处理。
  • [-\w.]+:组中的一个或多个字符,匹配短划线“ - ”,点“。”。或任何单词字符; \w是通常匹配字母'a'到'z'(大写和小写),数字'0'到'9'和下划线“_”的字符类。

如果您打开unicode支持(默认情况下在Python 3中启用),但\w类捕获了更多。任何在Unicode数据库中被分类为字母数字的字符都会匹配。匹配

实例:

  • “编码= foobar320_42spam_eggs”,组将是foobar320_42spam_eggs
  • “编码:东西有或其他”,组将是something-or-other
  • “编码:          whatever.42“,组将是whatever.42
2

它将匹配以下内容:

coding +的:一个或= +零个或多个空格(\s =空格,制表符,任何空白字符)+一些文字,也可能包含.-

相关问题