我试图在一个周期之前和之后替换字符。
我的句子有以下语法:
('ΑΕ027428',,,1.2,3,14),
我想把它转换成:
('ΑΕ027428',,,'1.2',3,14),
这可能吗?
在Perl中可以这样使用:
s/(...)/'$1'/g
取句号两边的两个字符并引用
#!/usr/bin/perl
use warnings;
use strict;
my $string = "('AE027428',,,1.2,3,14),";
$string =~ s/(...)/'$1'/g;
print $string;
输出:('AE027428',,,'1.2',3,14),
捕获包含十进制数字的列表项的正则表达式(我假设这是您正在寻找的)是:'(d+)[.](d+)'
为了使用捕获的组,您需要使用它们的id:
使用Perl命令行可以这样做:
$ perl -e "s/'(d+)[.](d+)'/$1.$2/g;" < your entire text
使用sed基本相同:
$ sed -i 's/'(d+)[.](d+)'/$1.$2/g' < your entire text
基本上你要做的就是在你的文本中找到所有适合你的模式的项目,然后把它们分成两个"捕获组"。然后将这些捕获的元素重新构建为您喜欢的形式。
我试图在notepad++中执行搜索和替换。感谢@shA。我已经想到了解决办法,那就是:
Find what: (d+.d+)
Replace with: '$1'