作者bwtalk (bwtalk)
看板Perl
標題[問題] 請教正規表示法
時間Fri Jun 28 23:34:54 2013
下面函式功能是丟進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
推 CCWck:$前面要加一個\ 06/29 00:09
→ CCWck:"$"Matches the end of the string, unless /m is used. 06/29 00:09
→ bwtalk:不好意思 請問是哪個$前面要加上\ 06/29 02:07
→ flu:黃色字那串 被[]夾著的那個 06/29 02:08
→ flu:另外黃色字那串如果改成 /^[A-Za-z_$]/ 就會看到錯誤訊息產生 06/29 02:15
→ bwtalk:感謝FLU大!!! 06/29 02:20