正则表达式匹配任何字符长度


RegEx match making with any character length

嗨,所以我需要编写一个程序来验证输入。

规范是"字母、空格、冒号、分号、破折号、逗号、撇号和数字字符 (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,例如  kkk , ...

k+ 表示有 1 个或多个可能的k,例如 kkk , ...

k{5}意味着正好有 5 k秒,即kkkkk

k{3,} 表示至少有 3 k 秒,例如 kkkkkkk , ...

k{2,4}意味着有 2、3 或 4 k 秒。

如需进一步阅读,请参阅 PHP 文档的相应页面。