在 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/