我是Perl新手,想知道如何在匹配模式後替換某些文本。匹配後替換字符串
比如我有一個字符串:
my $string = 'startDate="2014-06-10"';
$string =~ s/startDate="2014-06-10"/startDate=""\g;
此代碼代替我想要什麼,但我希望能夠有任何的日期和它替換爲空字符串的日期。所以我想在startDate="
之後替換任何文字,並在10個字符後停止替換。做這個的最好方式是什麼?
感謝
我是Perl新手,想知道如何在匹配模式後替換某些文本。匹配後替換字符串
比如我有一個字符串:
my $string = 'startDate="2014-06-10"';
$string =~ s/startDate="2014-06-10"/startDate=""\g;
此代碼代替我想要什麼,但我希望能夠有任何的日期和它替換爲空字符串的日期。所以我想在startDate="
之後替換任何文字,並在10個字符後停止替換。做這個的最好方式是什麼?
感謝
假設你的日期始終以這種格式,你可以用一個更一般的正則表達式替換日期:
my $string = 'startDate="2014-06-10"';
$string =~ s/startDate="\d{4}-\d{1,2}-\d{1,2}"/startDate=""/g;
既然startDate=""
保持你真的只需要更換相同日期本身:
my $string = 'startDate="2014-06-10"';
$string =~ s/\d{4}-\d{1,2}-\d{1,2}//g;
假設perl的> 5.10:
s/startDate="\K[^"]{10}//g;
取代10個字符,它們不是"
以下startDate="
。使用\K
意味着你不需要更換你想保留位:
\ K,這將導致正則表達式引擎「保持」一切,它已在\ķ之前匹配 並沒有包括在$ &
工程很好。謝謝 :) –