正規表示式9
2013-08-26 14:05
$string = "門是開著的,燈是關著的"
看起來真是平淡無奇的一個句子。可是如果我們希望讓門關起來,並且打開燈,我們應該怎麼作呢?
根據我們剛剛學到的替換,這件事情好像很簡單,我們只要把門跟燈互相對調就好,可是應該怎麼作呢?如果我們這麼寫:
$string =~ s/門/燈/;
那整個字串就變成了「燈是開著的,燈是關著的」,那接下來我們要怎麼讓原來「燈」的位置變成「門」呢?所以這種作法似乎行不通,不過既然要交換這兩個字,我們是不是有容易的方法呢?利用暫存變數似乎是個可行的方法,就像這樣:
my $string = "門是開著的,燈是關著的";
print $string if ($string =~ s/(門)(.*)(,)(燈)(.*)/$3$2$1$4/);