行,所以我做了以下的正則表達式替換替換爲不區分大小寫:區分大小寫與正則表達式
Input: ([Ll])ocation
Output: \1abel
替換Location
與Label
和location
與label
。但是,如果我想用geocode
和Location
替換location
和Geocode
,我可以使用單個正則表達式嗎?
我正在做一個搜索,並在此刻替換記事本++,但我有多個正則表達式方言的這個問題。
行,所以我做了以下的正則表達式替換替換爲不區分大小寫:區分大小寫與正則表達式
Input: ([Ll])ocation
Output: \1abel
替換Location
與Label
和location
與label
。但是,如果我想用geocode
和Location
替換location
和Geocode
,我可以使用單個正則表達式嗎?
我正在做一個搜索,並在此刻替換記事本++,但我有多個正則表達式方言的這個問題。
給你:
#!/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 ++支持它。
在Perl中:
echo Location | perl -pe 's/(l)ocation/$1^lc($1)^"geocode"/ei'
Geocode
EditPad Pro會做,如果你選擇 「適應情況」 選項,同時更換。這不是一個真正的正則表達式功能,只是一些由搜索和替換工具支持的功能。所述工具通常由正則表達式驅動,但這不是必需的;實際上,我認爲正則表達式在實現這樣一個功能方面不會有太大的幫助。
做兩個單獨的區分大小寫替換不是更容易嗎? – SLaks 2010-01-27 16:28:53