在perl中,用s///进行替换的问题
答案:1 悬赏:0
解决时间 2021-01-27 09:49
- 提问者网友:最美的风景
- 2021-01-26 18:06
在perl中,用s///进行替换的问题
最佳答案
- 二级知识专家网友:山君与见山
- 2021-01-26 19:20
$_="huge dinosaur"
s/\w+$/($`!)$&/;#结果为什么是“huge(huge !)dinosaur” 请解释一下
$` 又叫 pre-match, 就是匹配字串"之前" 的东西,
因为匹配到的是 "dinosaur" 所以其前面的就是 huge
$& 又叫 match, 就是匹配到字串,
因为匹配到的是 "dinosaur" 所以最後加上 "dinosaur"
s/\s+(!\w+$)/$1/;#结果为什么还是“huge(huge !)dinosaur”请解释一下
这个很简单, 因为根本找不到匹配, 所以没有进行过替换, 原封还给你了
s/huge/gigantic/;#为什么只替换了第一个huge没有替换第二个?
因为这不是 greedy(贪婪), 只要完成一次匹配就会返回, 如果你还想换掉第 2 个
你可以写成 s/huge/gigantic/g;
s/\w+$/($`!)$&/;#结果为什么是“huge(huge !)dinosaur” 请解释一下
$` 又叫 pre-match, 就是匹配字串"之前" 的东西,
因为匹配到的是 "dinosaur" 所以其前面的就是 huge
$& 又叫 match, 就是匹配到字串,
因为匹配到的是 "dinosaur" 所以最後加上 "dinosaur"
s/\s+(!\w+$)/$1/;#结果为什么还是“huge(huge !)dinosaur”请解释一下
这个很简单, 因为根本找不到匹配, 所以没有进行过替换, 原封还给你了
s/huge/gigantic/;#为什么只替换了第一个huge没有替换第二个?
因为这不是 greedy(贪婪), 只要完成一次匹配就会返回, 如果你还想换掉第 2 个
你可以写成 s/huge/gigantic/g;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |