python - 如何将正则表达式从 perl 转换为 python

标签 python regex perl

在 Perl 中:

 if ($test =~ /^id\:(.*)$/ ) {

 print $1;

 }

最佳答案

在 Python 中:

import re

test = 'id:foo'

match = re.search(r'^id:(.*)$', test)
if match:
    print match.group(1)

在 Python 中,正则表达式可以通过 re library 获得。 .

字符串前的r表示它是一个raw string literal ,这意味着不对反斜杠进行特殊处理(否则每个反斜杠都需要用另一个反斜杠进行转义,以便文字反斜杠进入正则表达式字符串)。

我在这里使用了 re.search,因为它最接近 Perl 的 =~ 运算符。还有另一个函数 re.match 做同样的事情,但只检查从字符串开头开始的匹配(与 Perl 程序员对“匹配”的定义有悖常理)。参见 this explanation有关两者之间差异的完整详细信息。

另请注意,无需对 : 进行转义,因为它不是正则表达式中的特殊字符。

关于python - 如何将正则表达式从 perl 转换为 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4464470/

相关文章:

python - 值错误: TensorFlow requires that the following symbols must be defined before the loop

python - 在可重用的 django 应用程序中导入设置文件

r - 将全角字符串转换为半角字符串

java - 使用正则表达式匹配多行文本

postgresql - Dancer2 Auth::Extensible 不接受散列密码

python - 如何检测 2 篇新闻文章是否具有相同的主题? (Python语言-比较)

python - 使用 Selenium 和 PhantomJS 进行表提取永远不会完成

javascript - 带逗号和可选 .00 的数字的正则表达式

perl - 是否可以使用 Perl 有条件地 "use bigint"?

perl - Perl 变量声明的正确方法