关于正则表达式有很多类似的问题,但我仍然对以下情况感到困惑:
import java.util.regex.Pattern;
public class PatternTest {
public static void main(String[] args) {
String PATTERN = "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{8,20})";
Pattern pattern = Pattern.compile(PATTERN);
boolean isTrue = pattern.matcher("nks#n1Kos2~([{&").matches();
System.out.println(isTrue);
}
}
~([{
下面是
Java正则表达式测试器
https://www.freeformatter.com/java-regex-tester.html#ad-output
<代码>(?=x)模式是零宽度正前瞻断言。所以他们断言在搜索字符串中找到正则表达式,而不消耗任何正则表达式。所有这些断言都成功传递。
.{8,20}
模式表示匹配任何字符,只要其中有8到20个字符(包括8到20个字符)。所以它匹配整个字符串。
您的正则表达式是:
String PATTERN = "(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{8,20}";
这意味着匹配长度为8到20的任何字符,该字符满足“前瞻”中给出的所有条件。
你真正需要的是:
String PATTERN = "(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%])[a-zA-Z\\d@#$%]{8,20}";
[a-zA-Z\\d@#$%]{8,20}
将只匹配长度为8到20的[...]
中允许的字符。
本文向大家介绍JS正则表达式验证中文字符,包括了JS正则表达式验证中文字符的使用技巧和注意事项,需要的朋友参考一下 正则表达式:"^[\u4e00-\u9fa5]{0,}$" 、 "/^[\u4E00-\u9FA5]{1,5}$/" 的含义: 在JS里,\uXXXX 是转义字符,"XXXX"对应的是16进制Unicode编码; ^ 匹配一行的开始。例如正则表达式^123能够匹配字符串"12345"
我有一个包含数千行的文本文件。这里有一个例子 我试图提取'nt60'、'nt50'末尾的字符串。 问题是会包含行尾字符() 我想使用正则表达式搜索来匹配从 (') 开始的字符串,但我不知道我应该用什么来匹配 。 有人能帮忙吗?
我想生成具有此表单的随机字符串 [A-Za-z0-9]{5,10} 我不知道怎么做,我应该用正则表达式还是随机函数?
我的正则表达式是 当我在java中使用Pattern.complie()编译时,我得到了*非法重复字符* 我测试了这个正则表达式 当我编译这个时,它没有显示错误。 为什么会发生这种情况?
我不熟悉Javascript和正则表达式,所以我一直在研究如何使路由匹配所有以
主要内容:标签属性,JSF验证整数范围实例标签用于将字符串值验证为所需格式。 以下代码显示如何使用标记。 标签属性 属性 说明 pattern 格式化模式 JSF验证整数范围实例 打开 NetBeans IDE 创建一个Web工程:ValidateRegularExpression,其目录结构如下所示 - 创建以下文件代码,文件:index.xhtml 的代码内容如下所示 - 文件:result.xhtml 的代码内容如下所示 - 文件: