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