この名前
/^(?! +$)[a-zA-ZàáâäãåèéêëìíîïòóôöõøùúûüÿýñçčšžÀÁÂÄÃÅÈÉÊËÌÍÎÏÒÓÔÖÕØÙÚÛÜŸÝÑßÇŒÆČŠŽ∂ð ,.'-]{2,}$/u
のための唯一の違いは、「スペースのみと文字列の末尾がある場合に失敗」とは、「少なくとも2つの文字は」終わりです(?! +$)
。
テスター:http://gskinner.com/RegExr/?2uv74
とパスワードについては、この1:
/^(?=.*[a-zA-ZàáâäãåèéêëìíîïòóôöõøùúûüÿýñçčšžÀÁÂÄÃÅÈÉÊËÌÍÎÏÒÓÔÖÕØÙÚÛÜŸÝÑßÇŒÆČŠŽ∂ð])(?=.*[^a-zA-ZàáâäãåèéêëìíîïòóôöõøùúûüÿýñçčšžÀÁÂÄÃÅÈÉÊËÌÍÎÏÒÓÔÖÕØÙÚÛÜŸÝÑßÇŒÆČŠŽ∂ð]).{8,}$/u
(私は "手紙" :-)のあなたの定義を使用しています)。それは意味:
look forward if present any character any number of times followed by a "letter"
look forward if present any character any number of times followed by a "non-letter"
(these two look forward don't "move" the regex cursor, that is still at the first character)
match any character 8 or more times
私はあなたが正規表現の末尾に/u
を使用している参照してください。あなたはおそらくPerlを使用しています。任意の文字に一致させるには、\p{L}
を使用し、文字以外の文字に一致させるには、長い文字リストを書くのではなく、\P{L}
を使用する必要があります。
/^(?=.*\p{L})(?=.*\P{L}).{8,}$/u
そして、あなたはそれらを含めることを好むだろうがない限り、私たちは
:-)ユニコードの構成可能な特殊記号を無視します:
/^(?! +$)[\p{L} ,.'-]{2,}$/u
とパスワード1:だから最初のものはなります...次に
/^(?! +$)(?=.{2,})(\p{L}\p{M}*|[ ,.'-])*$/u
(すべてのスペースと最小長がないことを事前にチェックしてから、上記
/^[\p{L},.'-]+[\p{L} ,.'-]*[\p{L},.'-]+$/u
perl?ブースト? C++ 11? Javascript?ヴィム?あなたのツールは何ですか? *正規表現だけでは意味がありません。 – Benoit