我已经为以下用例编写了模式
您可以使用大小写字母、数字和_,连字符,#,$,@符号
名称的长度最多应为255个字符。至少有一个字符应为必填字母或数字_u、连字符、#、$@
我想出了正则表达式^[a-zA-Z0-9。_ -]*$
这有效吗我不能限制255个字符和 # , $ , @ 验证
Valid Ex: abc 12345
abc12345
abc.ert.trs.123
abc.bcv.trs
abc.trt#trs
a
a$
$a#
1234$
567#
test 123 #
您可能想尝试以下几点:
Pattern p = Pattern.compile("^[\\w\\d ._#$@-]{1,255}$");
您对剩余#
、$
和@
字符的问题可能来自于您在连字符(-
)之后的字符类中添加它们,从而使编译器无法确定您是否尝试添加范围。
完整示例
String[] valid = {
"abc 12345",
"abc12345",
"abc.ert.trs.123",
"abc.bcv.trs",
"abc.trt#trs",
"a",
"a$",
"$a#",
"1234$",
"567#",
"test 123 #"
};
Pattern p = Pattern.compile("^[\\w\\d ._#$@-]{1,255}$");
for (String s: valid) {
Matcher m = p.matcher(s);
System.out.printf("\"%s\" is valid? %b %n", s, m.matches());
}
输出
"abc 12345" is valid? true
"abc12345" is valid? true
"abc.ert.trs.123" is valid? true
"abc.bcv.trs" is valid? true
"abc.trt#trs" is valid? true
"a" is valid? true
"a$" is valid? true
"$a#" is valid? true
"1234$" is valid? true
"567#" is valid? true
"test 123 #" is valid? true
您可以使用此正则表达式:
^(?=.*?[\w$#@-])[\w .$#@-]{1,255}$
这里(? =. *?[ \w$#@-])
是一个积极的前瞻,它至少确保一个字符是[\w$#@-]
字符之一。
此外,我还使用了相当于[a-zA-Z0-9.]
问题内容: 我正在尝试创建一个正则表达式来根据以下条件验证用户名: 仅包含 字母数字 字符, 下划线 和 点 。 下划线和点号不能位于用户名(例如/ / / )的 末尾 或 开头 。 下划线和点不能 彼此相邻 (例如)。 下划线或点不能被多次使用 的行中 (例如,/ )。 字符数必须在8到20之间。 到目前为止,这是我所做的;听起来它强制执行 除了第5条规则以外的 所有标准规则。我不知道如何添加第
要求: 在我的角度应用程序中,用户密码应符合以下要求, < li >最少八个字符 < li >至少一个大写字母 < li >至少一个小写字母 < li >至少一个号码 < li >至少一个特殊字符 问题: 对于上述要求,我使用下面的正则表达式。 前任:1F4@sf5s6,18F4@sf5s6 问题: Q1:这个正则表达式不符合我的要求吗? Q2:如何解决这个问题? Q3:有没有其他方法来实现这个要
问题内容: 我正在寻找允许我验证json的正则表达式。 我对Regex非常陌生,我知道使用Regex进行解析很不好,但是可以用来验证吗? 问题答案: 是的,可以进行完整的正则表达式验证。 大多数现代正则表达式实现都允许递归正则表达式,该正则表达式可以验证完整的JSON序列化结构。该json.org规范使得它非常简单。 它具有PCRE功能,在PHP中效果很好。应该在Perl中保持不变;并且可以肯定地
我希望在我的应用程序中接受带有字母和连字符或破折号的名称,我的代码基于我在这里找到的答案并编码为: 唯一的问题是它接受连字符作为我不想要的第一个字母(甚至是多个字母)。谢谢
问题内容: 我正在尝试使用以下规则在Java中使用用户名链: 长度> = 3 有效字符:az,AZ,0-9,点,破折号和下划线。 有人可以帮我提供正则表达式吗? 问题答案: 试试这个正则表达式:
问题内容: 谁能帮助我创建用于密码验证的正则表达式。 条件为“密码必须包含8个字符和至少一个数字,一个字母和一个唯一字符,例如 问题答案: