我的正则表达式就像这样
'/[a-z0-9]{40}/i'
将匹配任何不包含字母和/或数字的空格的字符串。
如何更改它以便它必须至少包含至少一个数字和至少一个字母字符,以便如果字符串是所有数字或所有字母都不匹配?
由于
答案 0 :(得分:2)
/([:alpha:].*[:digit:]|[:digit:].*[:alpha:])/
这需要一个数字跟随一个字母或一个字母跟随一个数字。
从原始正则表达式中,您似乎要强制要求总共40个字符。为此,请尝试:
/^(.*[:alpha:].*[:digit:].*|.*[:digit:].*[:alpha:].*){40}$/
注意额外的.*
。只要有一个字母和一个数字,其他字符就可以是任何字符。只要有40个。
如果您想避免匹配空格,请将每个.*
替换为[^[:space:]]*
。