java正则,大写字母+小写字母+符号+数字的组合
时间: 2023-07-31 16:04:48 浏览: 128
可以使用以下正则表达式来匹配由大写字母、小写字母、符号和数字组成的字符串:
```
^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\\p{Punct}]).*$
```
解释一下这个正则表达式:
- `^` 表示字符串的开始位置
- `(?=.*[A-Z])` 表示字符串中必须包含至少一个大写字母
- `(?=.*[a-z])` 表示字符串中必须包含至少一个小写字母
- `(?=.*[0-9])` 表示字符串中必须包含至少一个数字
- `(?=.*[\\p{Punct}])` 表示字符串中必须包含至少一个符号(使用 Unicode 的标点字符集)
- `.*` 表示可以匹配任意长度的字符串
- `$` 表示字符串的结束位置
你可以使用 Java 中的 `Pattern` 类来编译这个正则表达式并进行匹配,示例代码如下:
```java
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
String regex = "^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\\p{Punct}]).*$";
String input = "Abc123!@#";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
boolean isMatched = matcher.matches();
System.out.println(isMatched); // 输出 true
}
}
```
阅读全文