如何检查是否有符合以下规则的文字。
规则[任何字母] [ - ] [任意数字] [:] [任何字母或数字]
例如:ABC-123:Sample message
Perl Code Snippet
print verifyMsg("ABC-123:Sample message");
sub verifyMsg{
my ($content) = @_;
if ($content =~/^[a-zA-Z][-][0-9 :a-zA-Z]$/){
return 1;
}else{
return 0;
}
}
它总是返回0.请告诉我如何让它工作。
答案 0 :(得分:3)
规则[任何字母] [ - ] [任何数字] [:] [任何字母或数字]
但是,问题中提供的输入字符串也包含空格。因此,根据该公式和输入字符串,您需要
/\A[a-zA-Z]+-[0-9]+:[A-Za-z0-9\h]+\z/
<强>详情:
\A
- 字符串开头[a-zA-Z]+
- 1个或更多(由于+
量词)ASCII字母-
- 连字符[0-9]+
- 一位或多位:
- 冒号[A-Za-z0-9\h]+
- 一个或多个字母数字字符和水平空格(注意:如果您允许使用\h
的任何类型的空白字段\s
。如果您只是允许有规律的空间,保持原始模式的空间。)\z
- 字符串的结尾。答案 1 :(得分:0)
试试这个:
print verifyMsg("ABC-123:Sample message");
sub verifyMsg{
my ($content )= @_;
print"$content\n";
if ($content =~/^[a-z]+-\d+\:[\w\s+]+$/i){
return 1;
}
else{
return 0;
}
}