作者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
1F:推 CCWck:$前面要加一个\ 06/29 00:09
2F:→ CCWck:"$"Matches the end of the string, unless /m is used. 06/29 00:09
3F:→ bwtalk:不好意思 请问是哪个$前面要加上\ 06/29 02:07
4F:→ flu:黄色字那串 被[]夹着的那个 06/29 02:08
5F:→ flu:另外黄色字那串如果改成 /^[A-Za-z_$]/ 就会看到错误讯息产生 06/29 02:15
6F:→ bwtalk:感谢FLU大!!! 06/29 02:20