gpt4 book ai didi

javascript - 用于检查字符串是否包含至少 3 个字母数字字符的最有效正则表达式

转载 作者:数据小太阳 更新时间:2023-10-29 04:33:28 29 4
gpt4 key购买 nike

我有这个正则表达式:

(?:.*[a-zA-Z0-9].*){3}

我用它来查看字符串中是否至少包含 3 个字母数字字符。它似乎有效。

它应该匹配的字符串示例:

'a3c'
'_0_c_8_'
' 9 9d '

但是,我需要它更快地工作。有没有更好的方法使用正则表达式来匹配相同的模式?


编辑:我最终使用了这个 regex出于我的目的:

(?:[^a-zA-Z0-9]*[a-zA-Z0-9]){3}

(不需要修饰符)

最佳答案

最有效的正则表达式方法是使用 principle of contrast ,即并排使用相反的字符类。这是一个正则表达式,可用于检查字符串是否包含 3 个拉丁脚本字母或数字:

^(?:[^a-zA-Z0-9]*[a-zA-Z0-9]){3}

See demo .

如果你需要一个完整的字符串匹配,你需要附加 .*(或者 .*$ 如果你想保证你会匹配所有直到字符串/行的结尾),但在我对 regexhero 的测试中,.* 产生更好的性能):

^(?:[^a-zA-Z0-9]*[a-zA-Z0-9]){3}.*

此外,很大程度上取决于引擎。 PCRE 具有自动优化功能,包括自动拥有(即将 * 转换为 *+ in (?:[^a-zA-Z0 -9]*+).

参见 more details on password validation optimizations在这里。

关于javascript - 用于检查字符串是否包含至少 3 个字母数字字符的最有效正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30723346/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com