sim*_*eco 6 python regex command-line-interface
我从事的项目没有使用Perl,我想保持一致性。这就是为什么我想知道是否可以轻松地将这个方便的Perl 单行代码替换为Python 单行代码:
perl -pe 's/pattern/replacement/g' <<< 'expression'
Run Code Online (Sandbox Code Playgroud)
该程序一次从 STDIN 读取一行,pattern用字符串替换正则表达式的所有匹配项replacement,并将(可能)修改的行输出到 STDOUT。
您可以re.sub使用-c命令行选项运行,但它不会像以下那样漂亮perl:
python -c 'import re;print(re.sub(r"<pattern>", "<replacement>", "<string>"))'
Run Code Online (Sandbox Code Playgroud)
如果您还想从 STDIN 获取输入,则需要sys.stdin并且这也意味着import-ing sys:
python -c 'import re,sys;print(re.sub(r"<pattern>", "<replacement>", sys.stdin.read()))' <<< '<string>'
Run Code Online (Sandbox Code Playgroud)
因此,例如:
% 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
Run Code Online (Sandbox Code Playgroud)