3

好的,所以我做了以下正则表达式替换:

 Input: ([Ll])ocation
Output: \1abel

替换LocationLabel和。location_ label但是,如果我想locationgeocodeLocation替换Geocode,我可以用一个正则表达式来做到这一点吗?

我目前正在notepad ++中进行搜索和替换,但我在多种正则表达式方言中遇到了这个问题。

4

3 回答 3

1

如果您在更换时选择“Adapt Case”选项, EditPad Pro将执行此操作。这不是真正的正则表达式功能,只是一些搜索和替换工具支持的功能。所述工具通常由正则表达式驱动,但这不是必需的;事实上,我认为正则表达式对实现这样的功能没有多大帮助。

于 2010-01-28T05:15:31.463 回答
1

给你:

#!/usr/bin/perl -w

$str1 = 'Location Loc10';
$str2 = 'location Loc10';

$str1 =~ s/(L(?{ $g = 'G'; }) | l(?{ $g = 'g'; }) )ocation/${g}eocode/x;
print "$str1\n"; # prints Geocode Loc10

$str2 =~ s/(L(?{ $g = 'G'; }) | l(?{ $g = 'g'; }) )ocation/${g}eocode/x;
print "$str2\n"; # prints geocode Loc10

注意这段代码使用实验性的“评估任何 Perl 代码”零宽度断言。它在这里只是因为你问过它,我建议使用这样的表达方式,最好做几个替换。我真的怀疑 Notepad++ 是否支持它。

于 2010-01-27T17:01:41.700 回答
0

在 perl 中:

echo Location | perl -pe 's/(l)ocation/$1^lc($1)^"geocode"/ei'
Geocode
于 2010-01-27T17:11:05.997 回答