[問題] 取得開頭的字母串

作者: Solberg (packing for trip)   2016-05-24 11:41:29
處理到一系列的字串為
AAA001
BB002
CCCCCC33
想只取出前面的大寫字母
AAA
BB
CCCCCC
於是我寫了
$string =~ s/^([A-Z]+)/$1/;
print #string;
結果還是印出
AAA001
BB002
CCCCCC33
請問是何處寫錯了,謝謝。
作者: Neisseria (Neisseria)   2016-05-24 13:05:00
改成 $string =~ s/^([A-z]+).*/$1/s;要把後面的部分也抓進來,然後再取代掉
作者: Solberg (packing for trip)   2016-05-24 13:44:00
感謝你,可行了,但我對.*這塊還是不懂,為何要抓後面的
作者: Neisseria (Neisseria)   2016-05-24 15:35:00
因為要抓進來後再取代掉,要不然等於沒改到取代是把 regex 抓到的整個字串取代掉只是這個例子剛好是用原字串其中一部分做為取代的字串
作者: Solberg (packing for trip)   2016-05-26 11:07:00
對吼,是要整個取代掉,瞭解了,感謝~~~

Links booklink

Contact Us: admin [ a t ] ucptt.com