我对这个reg ex世界很陌生。与关于正则表达式的小任务有关。在发布新问题之前,我已经浏览了一些能够理解但无法破解问题解决方案的答案。感谢您对此的帮助。
我的设想是:
基于以下条件验证用户名
1-第一个字符必须是a-zA-Z0-9_@(两个特殊字符(_@)或字母数字中的任意一个)
2-其余的可以是任何字母、任何数字和-@_(三个特殊字符和字母数字中的任何一个)。
3 -但是单词之间没有连续的空格。
4-最大长度应为30个字符
我的用户名可能包含由单个空格分隔的多个单词..对于第一个单词,只允许使用_@字母数字,对于第二个单词,它可以包含_-@字母数字
需要忽略用户名末尾的尾随空格
例如:@test、_test、@test123、123@、test_-@、测试-test1、@test-_@test等。
感谢您对此的帮助..
谢谢你,阿琼
这可能有效^(? =.{ 1,30}$)(?!.*[ ]{2})[a-zA-Z0-9_@] (?:[ ][a-zA-Z0-9_@-] )*$
注意-检查没有连续空格(?! .* [ ]{2})
不是真的
必要的,因为正则表达式正文只允许单词之间有一个空格。
它留给后代,如果你愿意,把它拿出来。
解释了
^ # BOS
(?= .{1,30} $ ) # Min 1 character, max 30
(?! .* [ ]{2} ) # No consecutive spaces (not really necessary here)
[a-zA-Z0-9_@]+ # First word only
(?: # Optional other words
[ ]
[a-zA-Z0-9_@-]+
)*
$ # EOS
给你:
^(?!.*[ ]{2,})[\w@][-@\w]{0,29}$
查看它在regex101.com.
条件3上的工作,尽管您无论如何都不允许空格。\w
是[a-zA-Z_]
的快捷方式,(?!...)
称为负数。前瞻。
^ # start of string
(?!.*[ ]{2,}) # neg. lookahead, no consecutive spaces
[\w@] # condition 1
[-@\w]{0,29} # condition 2 and 4
$ # end of string
本文向大家介绍正则表达式匹配各种特殊字符,包括了正则表达式匹配各种特殊字符的使用技巧和注意事项,需要的朋友参考一下 写个可以匹配一下各种特殊字符的正则表达式 这个匹配所有键盘上可见的非字母和数字的符号 这个是输入框防止特殊字符勿输入验证,包括键盘上所有特殊字符的英文和中文状态。需要者可以根据自身需求而定!谢谢! [^\w\s]+ 匹配非空 非字母 非数字 即可 1 数字:^[0-9]*$ 2 n位
我有一个类似这样的字符串: 但是我得到了一个 你知道我做错了什么吗?
问题内容: 我想搭配以下 com.my.company。 moduleA .MyClassName com.my.company。 moduleB .MyClassName com.my.company。 anythingElse .MyClassName 但 不是 以下 com.my.company。 核心 .MyClassName 我当前的简单正则表达式模式是: 因此,基本上,我该如何匹配其他
我有一些xml文件,希望删除除特定字符串以外的所有内容。 StackOverflow上还有很多类似的问题,但都不适用于我的文件,在尝试了几个小时不同的正则表达式后,我想寻求帮助。 到目前为止,部分成功但并非完全成功的最接近的正则表达式是: xml文件的示例: 我使用regex101,因此可以将示例粘贴在那里,以了解为什么rex只能部分工作。简而言之,它与第一次出现的不匹配,但与第二次出现的匹配。我
我试图为密码字段创建一个验证,它只允许字符和 时有什么区别,以及哪些字符来自
我有一个HashMap,里面有键和值。我想用字符串中映射的值替换键。 在字符串中,键被写成@keyname或@“keyname”,这些应替换为map.get(“keyname”) 假设我们的地图是这个 所以如果我们处理字符串“Hello world,Iam@key1 years old.”,它将变成“Hello world,Iam 2 years old.”。 我们可以用@“key1”代替@key