[問題] 請教正規表示法

看板Perl作者 (bwtalk)時間12年前 (2013/06/28 23:34), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/1
下面函式功能是丟進id會回傳1,否則回傳0 id的定義是開頭字母是大小寫英文或是底線'_'或是錢字號'$' sub isIdentifier{ my $input; $input = $_[0]; if($input =~ /^[A-Za-z_$][A-Za-z_0-9]*/){ return 1;} else{ return 0;} } 但我再代入"123ma"之類的開頭為數字(123)非id的東西進去 還是回傳1... my $temp = "123ma"; print (&isIdentifier($temp)); 請問到底是哪裡寫錯了.... 我被這bug搞了一整個下午跟晚上 麻煩高手前輩們幫我解個惑 謝謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.20.204

06/29 00:09, , 1F
$前面要加一個\
06/29 00:09, 1F

06/29 00:09, , 2F
"$"Matches the end of the string, unless /m is used.
06/29 00:09, 2F

06/29 02:07, , 3F
不好意思 請問是哪個$前面要加上\
06/29 02:07, 3F

06/29 02:08, , 4F
黃色字那串 被[]夾著的那個
06/29 02:08, 4F

06/29 02:15, , 5F
另外黃色字那串如果改成 /^[A-Za-z_$]/ 就會看到錯誤訊息產生
06/29 02:15, 5F

06/29 02:20, , 6F
感謝FLU大!!!
06/29 02:20, 6F
文章代碼(AID): #1HpQqWiI (Perl)
文章代碼(AID): #1HpQqWiI (Perl)