Skip to main content
 首页 » 编程设计

python之这个正则表达式是什么意思

2025年05月04日22JeffreyZhao

我在正则表达式方面很弱,现在我正在调试一些代码,代码正在使用如下表达式搜索字符串:

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