制作接受所有字母和字符选择的正则表达式的正确方法是什么?

Kat*_*osa 1 java regex android

我需要一个接受所有字母(小写和大写),数字和这些字符/符号(' - ','_','@','.')的正则表达式.它不需要是电子邮件地址的形式.字符可以放在单词的任何位置.它也不应该接受空格,字长必须是8或更多.

这就是我到目前为止所拥有的.

^(?=\S{8})[a-zA-Z]\w*(?:\.\w+)*(?:@\w+\.\w{2,4})?$
Run Code Online (Sandbox Code Playgroud)

Wik*_*żew 7

您可以使用以下正则表达式:

^[a-zA-Z0-9_@.-]{8,}$
Run Code Online (Sandbox Code Playgroud)

细节

  • ^ - 字符串的开头
  • [a-zA-Z0-9_@.-]{8,}- 8个或更多ASCII字母,数字.,_,@或者-
  • $ - 字符串结尾.

请参阅正则表达式演示.

当心\w在Android中,它在默认情况下所有Unicode字母和数字相匹配(但不是在Java中).

在Android/Java中,当使用它时.matches(),您可以删除^$锚点,因为此方法需要完整的字符串匹配:

String regex = "[a-zA-Z0-9_@.-]{8,}";
Run Code Online (Sandbox Code Playgroud)