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