用perl语言,把一个文件中的部分内容由另一个文件替换

用perl语言,把一个文件中的部分内容由另一个文件替换,第1张

这类程序的一般套路:先打开文件1,获得需要的内容到变量里面,关闭文件1,再打开文件2,获取内容到

内存变量

中,进行替换,关闭文件2后重新以写方式打开,然后把内存变量写入文件2。

perl的分隔符是可以自定义的。

如$scriptDir

=~

s:\\:/:g

以上的分割符使用的是:

其实等价于

$scriptDir

=~

s{\\}{/}g

为什么不用s/regex/replacement/modifier这种形式呢?

这是因为正则想将\替换为/。所以分隔符绕开/就不会产生冲突了,将:替换为!或者'都能正常工作

第二个意义不是很明确。看起来像是做行末\转义的

$str

=

"time:23:

00"

$str

=~

s/(23):(\s*)00/2009-02-19

$1:${2}30/g

print

$str."\n"

空格个数0-n的话用\s*,空格个数1-n的话用\s+

数字23、00如果不确定的话,可以用\d{2}代替。

冒号在正则表达式中只是个普通字符。

s///g是全局替换。

小小修改下~~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11785293.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存