2
我需要捕捉("
)報價字符之間串來改變看中的人報價,因此我創建替代,我的代碼:爲什麼在我的正則表達式中,非單詞字符不匹配?
my $pk = qq|IV Baltic Sea NGO Forum "Challenges for Baltic Sea civil society"|;
$pk =~ s/"(\p{Word}+.?+)"/«$1»/g;
say $pk;
我的意思是正則表達式爲:
- 報價焦炭
- 隨後在至少一個字炭
- 後跟任意炭
- 直到下一個引用字符(非貪婪捕獲)
當引號之間有任何非單詞字符時,我不會捕獲它。爲什麼?
我發現another solution也是,但我想明白,爲什麼我的正則表達式不起作用?
我不能記住有'+'或'+'和'='或'= .'。?。?。我應該檢查一下自己,謝謝你指點和提供其他方式!總之會接受它。 – 2013-02-14 08:22:55
@ w.k。歡迎您:)關於'。='或'= .'沒有什麼特別的地方。正則表達式中只有3種量詞 - '*,+和?'。 – 2013-02-14 08:24:11
@ w.k。默認情況下,這些quauntifiers是貪婪的,即它們儘可能匹配。所以,你在他們每個人的最後添加一個'?',以使他們不願意。另外,你在它們的最後加上一個'+'來使它們成爲所有格。與之匹配的字符串不會被回溯。 – 2013-02-14 08:25:25