Chinaunix

标题: 匹配替换单词之间的空格 [打印本页]

作者: freesiaSS    时间: 2016-08-03 09:12
标题: 匹配替换单词之间的空格
仅匹配特定单词之间的空格,
比如,将   Lej flava Aej cavifo Dej sjua  替换成
              Lej_flava Aej_cavifo Dej_sjua
有没有什么简便的方法。

作者: 白菜饺子馅    时间: 2016-08-03 09:19
所能想到的就是找到特定单词之间的规律,凑出一个结果来。
$s =~ s/(\w+)\s+(\w+)\s+(\w+)\s+(\w+)/$1_$2 $3_$4/;
作者: b114213903    时间: 2016-08-03 09:30
  1. #!perl
  2. use strict;

  3. my $string='Lej flava Aej cavifo Dej sjua';

  4. $string=~s/([A-Z][a-z]+)\s+/$1_/g;

  5. print "$string\n";
复制代码

作者: jason680    时间: 2016-08-03 09:35
回复 1# freesiaSS

$ echo "Lej flava Aej cavifo Dej sjua" | perl -pe 's/(\w+) (\w+)/$1_$2/g'
Lej_flava Aej_cavifo Dej_sjua

   
作者: freesiaSS    时间: 2016-08-03 09:46
回复 3# b114213903

太理解我了。。。。。我就是想把大写字母前的空格,替换成_
很有帮助,谢谢啦~


   
作者: freesiaSS    时间: 2016-08-03 09:47
回复 4# jason680

谢谢,受教啦


   
作者: freesiaSS    时间: 2016-08-03 09:47
回复 2# 白菜饺子馅


我的数据量比较大,有几百个,这样的需要替换啊,手残




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2