我有一个清单:
1 name1
2 name2
3 name3
我需要将所有1,2,3 ...替换为'1','2','3'...和name1,name2,name3替换为'name1','name','name'3 。 我知道如何通过'\ n'和'\ s'来做到这一点。
但我认为存在更好的方式。有人知道吗?
答案 0 :(得分:2)
这是一个JavaScript解决方案:
str = str.replace(/(\w+)/g, "'$1'");
答案 1 :(得分:2)
你可以用perl轻松完成,
在unix机器上,从终端:
perl -pe 's/regex/replace/' input > output
(>输出是可选的,它只会打印到终端)
这样:
perl -pe "s/([0-9]+)\s(.*)/'\1' '\2'/g" file > file2
这将在开头找到至少一个数字并捕获它(作为 \ 1 )。然后捕获一些空白区域,然后捕获其余部分(如 \ 2 )。在 / 之后是替换位。只需添加'并插入捕获的位。
(如果你在Windows上,你可以在这里获得perl:http://www.perl.org/get.html#more)
答案 2 :(得分:1)
在PHP中有一点片段:
$str = "1 name1\n2 name2\n3 name3";
$str2 = preg_replace('!([^\s]+)\s([^\n]+)!sm', "'$1' '$2'", $str);
echo $str2;
它使用$ 1和$ 2来引用你在字符串<'p>中'捕获'的圆括号