現時点での私の正規表現は次のようになります
'/[a-z0-9]{40}/i'
これは、文字や数字を含むスペースのない任意の文字列に一致します。
文字列がすべて数字またはすべて文字である場合に一致しないように、少なくとも1つの数字と少なくとも1つのアルファベット文字を含める必要があるように変更するにはどうすればよいですか?
ありがとう
/([:alpha:].*[:digit:]|[:digit:].*[:alpha:])/
これには、文字の後に数字が続くか、数字の後に文字が続く必要があります。
元の正規表現から、合計 40 文字の要件を適用したいようです。そのためには、次を試してください。
/^(.*[:alpha:].*[:digit:].*|.*[:digit:].*[:alpha:].*){40}$/
余分なものに注意してください.*
。英字と数字が 1 つずつあれば、他の文字は何でもかまいません。それらが40ある限り。
空白の一致を避けたい場合は、それぞれ.*
をに置き換えます[^[:space:]]*
。