替换句点前后字符-正则表达式



我试图在一个周期之前和之后替换字符。

我的句子有以下语法:

('ΑΕ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'

最新更新