第1个回答  2018-08-18
/^[-.-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/

分成2部分,@之前和之后
@之前
^[-.-_A-Za-z0-9]+ 表示允许出现- . _ 和字母数字这些,且必须大于1个字符,字数无上限,而且他们出现的位置都不限
@之后
([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$
([_A-Za-z0-9]+\.)+ 表示允许大于1个字母数字出现,后面跟 .
[A-Za-z0-9]{2,3} 表示允许2个或3个字母数字的组成的单词出现

下面的验证,根据你的修改了一些
/^[^\_][\w\-\.]+@[\w\.]+[\w]{2,3}$/
@之前
^[^\_][\w\-\.]+ 排除下划线出现在用户名头位置,\w表示所有字母和数字,下划线
后面都差不多意思

------------------------------------

不好意思,没注意到你的补充,现在才看到

1.我的代码里最前面的/^是表示正则表达式的开始的吧?
a: 是的,^是开始符号 $是结束符号

2.按我的代码,第二个横线是不是可以去掉,而且原意不变?(我试过,去掉第一个不可以,去掉第二个代码能正常运行),如果不可以去掉那么要它有什么用?
我试过用/^[-.-_-----A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/这个代码也能用,也就是说从我那里的第三个横线开始加多少个都可以。
3.df.-.g_d._fg@aa.aa.aa.bbbbbbbbb这个字符串可以在你的表达式里通过,这个违背了,我之前的意思:及最后一个单词后面只能是两个或三个字母。
a:俩个短横线保留一个就可以了,不能去掉第一个的原因是第二个短横线-应该被当成连接符了,就想A-Z这样的中间的链接符,你去掉第一个的话,在第二个短横线那里加个反斜杠\就好了
你提出的错误确实是存在,应该是[\w.]+这里出问题了,这[]里面的是可选的,而不是必须的,所以在匹配bbbbbbbbb的时候在[\w.]+这里成功,最后的[\w]{2,3}没起到作用,造成了这个错误,我改了一下,这样在没有到字串末尾时连接点.就成为必须字符
/^[^\_][\w\-\.]+@([\w]+\.)+[\w]{2,3}[^\_]$/本回答被网友采纳

这个正则表达式是什么意思?^(?=[1-9])(?=.[A-Z]).{10,12}$
我来回答一下,这个正则表达式字面上的意思的验证必须由一个数字加一个大写字母开头的10-12长度的字符串。^表示开始,()表示子表达式,^(?=[1-9])(?=.[A-Z])表示开始后面必须接一个数字(范围1-9),数字后面必须接一个大写字母(范围【A-Z】),.表示任意字符,{}表示长度限制,$表示结...

正则表达式里^[1-9]表示什么?
^[1-9]表示以1到9的某位数字开头。\\d*表示0-9的任意一位或者多位或者一位。表示以什么结束。在正则表达式中,用\\d表示一位数字。如果再其他语言中使用过正则表达式,那你立刻就能发现Java对反斜杠\\的不同处理。在其他语言中,\\\\表示:我想要在正则表达式中插入一个普通的反斜杠,不给他任何特殊...

怎样用正则表达式验证密码?
解释:^:匹配字符串的开始位置 (?=.*[0-9]):正向预查,表示字符串中必须包含至少一个数字 (?=.*[a-z]):正向预查,表示字符串中必须包含至少一个小写字母 (?=.*[A-Z]):正向预查,表示字符串中必须包含至少一个大写字母 .{8,20}:匹配任意字符,长度范围为8到20个字符 :匹配字符串...

正则表达式 ^(?=.*?[A-Z])(?=.*?[^A-Za-z0-9]).{6,12}$ 这个是什么意思...
(?=.*?[A-Z])(?=xxx)是零宽断言,表示后面的字符串必须符合xxx这个正则表达式,但是不消耗字符串,实际匹配字符串的正则是.{6,12}即6到12位字符 (?=.*?[A-Z])表示后面必须符号.*?[A-Z]这个 ,即必须有大写字母 整个正则表达式表示6到12位字符,必须有大写字母和不是字母数字的字符 ...

什么是正则表达式
正则表达式,又称规则表达式。是计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则...

正则表达式是什么?该怎么用?
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符...

正则表达式中 (?=.*[a-z]) 什么意思?
意思是断言,只匹配一个位置。例如:想匹配一个“人”字,但是只想匹配中国人的人字,不想匹配法国人的人,就可以用一下表达式 (?=中国)人 所以,楼主的表达式与其他通配符连用才能起到效果。(?=.*[a-z])\\d+ 这个就表示 匹配以“任意字符连着一个小写字母”开头的数字,只匹配数字。(?<=exp)...

这样一串正则\/^[1-9]\\d*|0$\/,是之前开发写的,用来简单检查输入的第一...
你原意是验证自然数(现在的说法是正整数+0都属于自然数)你的 | 号的问题,这个正则表达式的意思是 (行首以1-9开头,后面跟任意长度的数字,再后面不管跟什么字符) 或者 (前面不管什么字符,以0结尾)如果要验证自然数,这样改就行了.^([1-9]\\d*|0)...

正则表达式“?=”什么意思?
意思是断言,只匹配一个位置。例如:想匹配一个“人”字,但是只想匹配中国人的人字,不想匹配法国人的人,就可以用一下表达式 (?=中国)人 所以,楼主的表达式与其他通配符连用才能起到效果。(?=.*[a-z])\\d+ 这个就表示 匹配以“任意字符连着一个小写字母”开头的数字,只匹配数字。(?<=exp)...

正则表达式中 (?=.*[a-z]) 什么意思?
这个表达式与其他通配符连用才能起到效果。正则表达式是计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep...

相似回答
大家正在搜