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

看板Perl作者 (packing for trip)時間7年前 (2016/05/24 11:41), 編輯推噓0(007)
留言7則, 2人參與, 最新討論串1/1
處理到一系列的字串為 AAA001 BB002 CCCCCC33 想只取出前面的大寫字母 AAA BB CCCCCC 於是我寫了 $string =~ s/^([A-Z]+)/$1/; print #string; 結果還是印出 AAA001 BB002 CCCCCC33 請問是何處寫錯了,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.252.38.130 ※ 文章網址: https://www.ptt.cc/bbs/Perl/M.1464061292.A.CAB.html

05/24 13:05, , 1F
改成 $string =~ s/^([A-z]+).*/$1/s;
05/24 13:05, 1F

05/24 13:06, , 2F
要把後面的部分也抓進來,然後再取代掉
05/24 13:06, 2F

05/24 13:44, , 3F
感謝你,可行了,但我對.*這塊還是不懂,為何要抓後面的
05/24 13:44, 3F

05/24 15:35, , 4F
因為要抓進來後再取代掉,要不然等於沒改到
05/24 15:35, 4F

05/24 15:38, , 5F
取代是把 regex 抓到的整個字串取代掉
05/24 15:38, 5F

05/24 15:38, , 6F
只是這個例子剛好是用原字串其中一部分做為取代的字串
05/24 15:38, 6F

05/26 11:07, , 7F
對吼,是要整個取代掉,瞭解了,感謝~~~
05/26 11:07, 7F
文章代碼(AID): #1NGyrioh (Perl)
文章代碼(AID): #1NGyrioh (Perl)