java - 如何使用正则表达式在lookhead中给出范围,例如 ^(?=(.*[az]){1,3})(?=.*[0-9]).{2,5}$
问题描述
Question-
1]String length is 2 to 5
2]String contains at least 1 char and maximum 3 char
3]Atleast one number
我想使用lookhead。我试过但没有工作 ^(?=(. [az]){1,3})(?=. [0-9]).{2,5}$
解决方案
尝试使用下面的正则表达式
(?=([\\w\\W]{2,5}$))(?=(.*([0-9]){1,}.*))^[^A-Za-z]*[A-Za-z](?!(?:[^A-Za-z]*[A-Za-z]){3})
public static void main(String[] args) {
String regex = "(?=([\\w\\W]{2,5}$))(?=(.*([0-9]){1,}.*))^[^A-Za-z]*[A-Za-z](?!(?:[^A-Za-z]*[A-Za-z]){3}).*";
Pattern pattern = Pattern.compile(regex);
System.out.println(pattern.matcher("AB2").find()); // output true
System.out.println(pattern.matcher("AB2C").find()); // output true
}
推荐阅读
- python-3.x - Github API 生成的带注释的标签没有出现在 git describe 中
- sql - Athena SQL - 使用外列的自连接子查询
- reactjs - ReactDOM 渲染 -> DOMParser -> querySelectorAll -> 返回 null
- svg - .svg 可以在 webpack 中加载两次吗?
- java - 将 Xamarin 代码转换为本机
- c - 在c中将char转换为int
- vba - 使用 VBA 打开时获取 .xlsm 文件以不执行代码
- c# - 如何管理同名构造函数
- react-native - React Native - 安卓数据网格
- java - Java 7 运行时关闭 Google App Engine