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