正则表达式 – 如何从搜索中删除替换访问var?
发布时间:2020-12-14 06:01:09 所属栏目:百科 来源:网络整理
导读:基本上我想这样做: #!/usr/bin/perl$search = qr/(?Xabc)/;$_ = "123 abc 456";s/$search/$+{X} $+{X}/;print; 这样的事情: #!/usr/bin/perl$search = qr/(?Xabc)/;$replace = q($+{X} $+{X});$_ = "123 abc 456";s/$search/$replace/;print; 结果应为123
基本上我想这样做:
#!/usr/bin/perl $search = qr/(?<X>abc)/; $_ = "123 abc 456"; s/$search/$+{X} $+{X}/; print; 这样的事情: #!/usr/bin/perl $search = qr/(?<X>abc)/; $replace = q($+{X} $+{X}); $_ = "123 abc 456"; s/$search/$replace/; print; 结果应为123 abc abc 456. 可能吗? $replace需要作为外部变量维护.所以,我不希望内容只是移动到另一个位置.我正在从文件中读取此信息. 解决方法
弄清楚了.我需要对表达式进行双重评估(感谢@Birei指向我的regex evaluate命令.仍然无法在perl文档中找到它但是…不得不谷歌.:()
所以它变成: #!/usr/bin/perl $search = qr/(?<X>abc)/; $replace = q(qq($+{X} $+{X})); $_ = "123 abc 456"; s/$search/$replace/ee; print; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |