感謝P友的大力協助
將第二個括號改成\w即可
------------------------------------------------------------
大家好,我在工作上使用perl遇到一些問題想請教大家該怎麼處理好
$str="Hello.I.am.Apple.nice.to.meet.you";
if($str=~/Hello\.(\S*)\.Apple\S*to\.(\S*)[\.you]*/){
$sub_str1=$1;
$sub_str2=$2;
}
print "$sub_str2\n";
原本預期應該要抓到meet,但是正規表示式卻抓到meet.you
code為什麼這樣寫,因為要處理的字串有時候可能不含you這個字
為什麼不使用split?因為抓的字串中間可能含有".",而且到底要包含多少個"."
則視狀況而定,有可能這次抓I.am,下次有可能抓I.am.Apple
所以我認為用split在這邊不適用
礙於公司有規定工作上任何東西都不能外洩,所以我只能用簡單例子來詢問
再麻煩高手幫我了,在此先謝上
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.162.222
※ 文章網址: https://www.ptt.cc/bbs/Perl/M.1559151100.A.E5F.html
※ 編輯: jacky1989 (122.116.162.222), 05/30/2019 01:34:12
※ 編輯: jacky1989 (122.116.162.222), 05/30/2019 01:36:45
→
05/30 03:09,
5年前
, 1F
05/30 03:09, 1F
→
05/30 03:12,
5年前
, 2F
05/30 03:12, 2F
→
05/30 03:13,
5年前
, 3F
05/30 03:13, 3F
※ 編輯: jacky1989 (122.116.162.222), 05/30/2019 22:58:23