我试图在一段时间之前和之后替换角色。
我的句子有以下语法:
('ΑΕ027428',,,1.2,3,14),
我想将其转换为:
('ΑΕ027428',,,'1.2',3,14),
这可能吗?
答案 0 :(得分:0)
正则表达式只捕获包含十进制数的列表项(我假设你正在寻找的是:
'(\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
基本上你在这里做的是找到适合你的模式的文本中的所有项目,然后将它们分成两个“捕获组”。然后,将这些捕获的元素重建为您喜欢的形式。
答案 1 :(得分:0)
在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),
答案 2 :(得分:0)
我试图在notepad ++中执行搜索和替换。感谢@ shA.t我已经找到了解决方案:
Find what: (\d+\.\d+)
Replace with: \'$1\'