Java 验证的正则表达式必须包含字母数字

Java 验证的正则表达式必须包含字母数字,java,regex,Java,Regex,我想做一个正则表达式,它必须有一个数字和一个字母表 onlyText将不进行数学运算。但是onlyText123匹配。给你 ^(?=.*[a-zA-Z])(?=.*[\d]).*$ 关键是使用一种称为“环顾四周”的技术 ^(?=.*[a-zA-Z])(?=.*[\d]).*$ 关键是要使用一种叫做“环顾四周”的技术。你可以试试这样的方法 String p= "\\w*([a-zA-Z]\\d|\\d[a-zA-Z])\\w*"; System.out.println("1a".matche

我想做一个正则表达式,它必须有一个数字和一个字母表

onlyText
将不进行数学运算。但是
onlyText123
匹配。

给你

^(?=.*[a-zA-Z])(?=.*[\d]).*$
关键是使用一种称为“环顾四周”的技术

^(?=.*[a-zA-Z])(?=.*[\d]).*$

关键是要使用一种叫做“环顾四周”的技术。你可以试试这样的方法

String p= "\\w*([a-zA-Z]\\d|\\d[a-zA-Z])\\w*";

System.out.println("1a".matches(p));//true
System.out.println("a1".matches(p));//true
System.out.println("1".matches(p));//false
System.out.println("a".matches(p));//false
([a-zA-Z]\\d |\\d[a-zA-Z])
==字母后数字或数字后字母


它的前后可以(但不一定)是字母和数字(
\\w

您可以尝试这样的方法

String p= "\\w*([a-zA-Z]\\d|\\d[a-zA-Z])\\w*";

System.out.println("1a".matches(p));//true
System.out.println("a1".matches(p));//true
System.out.println("1".matches(p));//false
System.out.println("a".matches(p));//false
([a-zA-Z]\\d |\\d[a-zA-Z])
==字母后数字或数字后字母

前后可以(但不一定)是字母和数字(
\\w

减去下划线。这减去下划线。