3

わかりましたので、次の正規表現の置き換えを行います:

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

それはと に置き換えられLocationます。ただし、andをに置き換えたい場合、単一の正規表現でそれを行うことはできますか?LabellocationlabellocationgeocodeLocationGeocode

現在、メモ帳++で検索と置換を行っていますが、複数の正規表現方言でこの問題が発生しました。

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 に答える