我需要一个正则表达式来匹配字母,数字以及可能的@和。 (它们不是电子邮件地址)
匹配:
mirs99milo
kiapp98@dot.com
不匹配:
设备
99987
有时候,字符串在开始时带有一个特殊字符,在这种情况下,应该跳过字符并获取字符串,例如:
-mirs99milo ->忽略“-”,仅匹配mirs99milo
-kiapp98@dot.com ->忽略“-”,仅匹配kiapp98@dot.com
我已经有这个了
(?=。 \ w)(?=。 [A-Za-z])[\ w] {1,10}
除了字符串中带有“ @”的字符串之外,其他都很好用
https://regex101.com/r/bHUCaX/3
非常感谢您的帮助。谢谢。
答案 0 :(得分:0)
答案 1 :(得分:0)
尝试一下 (?=。 \ d)(?=。 [A-Za-z])[。@ A-Za-z0-9] {1,20}
答案 2 :(得分:0)
由于您的要求不清楚,这是我根据您的问题做出的猜测:
您要确保输入字符串:
@
和.
如果这是必需的,则可以使用:
^(?=.*\d)(?=.*[a-zA-Z]).?[\da-zA-Z@.]+$
这应该使您可以验证输入的字符串是否符合您的格式。
但是,如果要在符合条件的情况下获取匹配的字符串,并排除第一个特殊字符(如果存在),则可以这样做
^(?=.*\d)(?=.*[a-zA-Z]).??([\da-zA-Z@.]+)$
您需要的是第1组
正则表达式的解释:
^ start of line
(?=.*\d) look-ahead: at least a digit
(?=.*[a-zA-Z]) look-ahead: at least a alphabet
.?? optional one any char,
reluctant match
( ) matching group
[\da-zA-Z@.]+ 1-or-more occurrence of
digits,alphabet, @ and dot
$ end of line