嗨所以我需要编写一个验证输入的程序。
规格是“字母,空格,冒号,分号,短划线,逗号,撇号和数字字符(0-9) - 不能为空”
我知道如何使用明确数量的字符,但在这种情况下,它可以是任意数量的字符,1-50并且我不知道在这种情况下如何处理正则表达式表示法任意数量的字符。我怎么开始呢?
答案 0 :(得分:2)
当你说输入行不能为空时我想,虽然你想要允许空格,但这行本身不能只是空格。
根据这种看法,我建议这个正则表达式。括号中的负向前瞻确保该行不是所有空格。
^(?!\s+$)[-A-Za-z0-9:;'\s]{1,50}$
答案 1 :(得分:1)
匹配整个字符串:
^[A-Za-z0-9 :;,'-]{1,50}$
将其作为字符串的一部分进行匹配:
[A-Za-z0-9 :;,'-]{1,50}
答案 2 :(得分:1)
如果你想要匹配任意数量的东西(但至少有一个),你只需要+
个字符。这是一个例子:
^[A-Za-z :;\-,'\d]+$
答案 3 :(得分:0)
有几种方法可以表示正则表达式中的多重性:
k?
表示可能存在0或1 k
,即
或k
k*
表示可能有0个或更多k
个,例如
,k
,kk
,...
k+
表示有一个或多个k
可能,例如k
,kk
,...
k{5}
表示正好有5 k
s,即kkkkk
k{3,}
表示至少 3 k
,例如kkk
,kkkk
,...
k{2,4}
表示有2个,3个或4个k
s。
如需进一步阅读,请参阅PHP Documentation的相应页面。