限制正则表达式中的字符长度
使用正则表达式验证输入时,可能需要限制正则表达式中的字符长度匹配。这可以使用锚点和零宽度断言来实现。
问题中提供的示例使用正则表达式来匹配仅包含字母、数字和某些特殊字符的字符串,没有字符长度限制。但是,当尝试使用量词 {1,15} 将长度限制为 15 个字符时,会遇到语法错误。
原因是量词无法应用于锚点。要限制字符长度,另一种方法是使用锚定在字符串开头的前瞻。
修改后的表达式:
^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>?()"]*$
此表达式包括前瞻,(?= .{1,15}$),它检查字符串末尾是否有 1 到 15 个字符的序列。表达式的主要部分比较输入字符串的长度。
同样,可以为各种编程语言编写表达式:
Flavor | Expression |
---|---|
ECMAScript, C | ^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>?()"]*$ |
Other regex flavors, Python | A(?=.{1,15}z)[a-zA-Z0-9]*[^$%^&*;:,<>?()"]*z |
其他注意事项
以上是如何限制正则表达式中的字符长度?的详细内容。更多信息请关注PHP中文网其他相关文章!