看板 Perl 關於我們 聯絡資訊
處理到一系列的字串為 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
Neisseria: 改成 $string =~ s/^([A-z]+).*/$1/s; 05/24 13:05
Neisseria: 要把後面的部分也抓進來,然後再取代掉 05/24 13:06
Solberg: 感謝你,可行了,但我對.*這塊還是不懂,為何要抓後面的 05/24 13:44
Neisseria: 因為要抓進來後再取代掉,要不然等於沒改到 05/24 15:35
Neisseria: 取代是把 regex 抓到的整個字串取代掉 05/24 15:38
Neisseria: 只是這個例子剛好是用原字串其中一部分做為取代的字串 05/24 15:38
Solberg: 對吼,是要整個取代掉,瞭解了,感謝~~~ 05/26 11:07