Chr*_*nes 6 regex string perl whitespace
为什么不
perl -ne "print if /(<Conn)([\S|\s]+?)(>)/sg;" /path/to/file
Run Code Online (Sandbox Code Playgroud)
匹配
perl -ne "print if /(<Conn)([\S|\s]+?)(>)/sg;" /path/to/file
Run Code Online (Sandbox Code Playgroud)
当它匹配时
<Connector port="PORT" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />`
Run Code Online (Sandbox Code Playgroud)
我需要做什么才能将两者与相同的正则表达式匹配?
该-n选项逐行读取文件,但您可以通过取消定义输入行终止符来将一行更改为整个文件。这是使用local $/;或使用命令行选项完成的-0777,如下所示:
perl -0777ne 'print "$1\n" while /(<Conn.+?>)/sg;' /path/to/file
Run Code Online (Sandbox Code Playgroud)
它立即读入整个文件。如果这是一个问题,请尝试设置$/为>(因为您的模式始终以 结尾>)或-o076在命令行上:
perl -076ne 'print "$1\n" if /(<Conn.+?>)/sg;' /path/to/file
Run Code Online (Sandbox Code Playgroud)