Skip to main content
 首页 » 编程设计

python之如何用 Python 单行替换 Perl 单行正则表达式

2024年08月12日32zhenyulu

我从事的项目未使用 Perl,但我希望保持一致性。这就是为什么我想知道我是否可以轻松地将这个方便的 Perl 单行代码 替换为 Python 单行代码:

perl -pe 's/pattern/replacement/g' <<< 'expression' 

此程序一次从 STDIN 读取一行,用字符串 replacement 替换正则表达式 pattern 的所有匹配项,并将(可能)修改的行输出到 STDOUT .

请您参考如下方法:

您可以使用 -c 命令行选项运行 re.sub,但它不会像 perl 那样漂亮:

python -c 'import re;print(re.sub(r"<pattern>", "<replacement>", "<string>"))' 

如果你也想从 STDIN 获得输入,你需要 sys.stdin 并且这也意味着 import-ing sys:

python -c 'import re,sys;print(re.sub(r"<pattern>", "<replacement>", sys.stdin.read()))' <<< '<string>' 

所以,例如:

% python -c 'import re;print(re.sub(r"foo", "bar", "foobar"))' 
barbar 
 
% python -c 'import re,sys;print(re.sub(r"foo", "bar", sys.stdin.read()))' <<< 'foobar' 
barbar