Python正则表达式风格

标签 python regex

是否有关于应如何使用正则表达式的 Pythonic“标准”?

我通常做的是在我的模块顶部执行一堆 re.compile 语句,并将对象存储在全局变量中……然后在我的函数和类中使用它们。

我可以在我将要使用它们的函数中定义正则表达式,但它们每次都会被重新编译。

或者,我可以完全放弃重新编译,但如果我多次使用相同的正则表达式,重新编译似乎会产生不必要的开销。

最佳答案

一种更简洁的方法是使用字典:

PATTERNS = {'pattern1': re.compile('foo.*baz'),
            'snake': re.compile('python'),
            'knight': re.compile('[Aa]rthur|[Bb]edevere|[Ll]auncelot')}

这将解决您的命名空间被污染的问题,而且对于查看您的代码的任何人来说,PATTERNS 是什么以及将用于什么,它都非常明显,并且它满足全局变量的 CAPS 约定。此外,您可以轻松地调用 re.match(PATTERNS[pattern]),或者您的逻辑要求的任何内容。

关于Python正则表达式风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3188024/

上一篇:Python 循环引用

下一篇:python - 无返回值

相关文章:

javascript - 比较两个字符串并返回两者都不存在的值

java - 为什么 "3.5".matches ("[0-9]+") 返回 false?

python - 多处理中的管理器字典

python - ubuntu 16.04如何知道Caffe2是否安装成功?

regex - 在文本文件中查找所有匹配的双字符字符串并交换它们

javascript - RegEx.Test 返回始终 false

python - Tango 与 Django 第 6 章 - URL 不起作用

python - 如何在 SWIG 中公开 C 字符串数组 char[M][N]?

python - 将 DataFrame 与 pandas 合并

javascript - 正则表达式需要一些帮助