Regex 前用户名@
我想匹配地址邮件中Regex 前用户名@,regex,Regex,我想匹配地址邮件中@之前的用户名, 我创建了这个正则表达式 [A-Za-z+ /w+0-9._%+-]+@ 我的例子的结果是: example: blabla,blabla,Test@Testing.com,blabla,blabla,blabla result : Test@ 如果没有@我怎么能只得到测试,最简单的方法是: ([A-Za-z/0-9.+-]+)@ 而不是使用您所使用的($1在perl中,匹配tcl中的var,等等) 顺便说一句, 我不知道电子邮件地址中可以有空格,你确定
@
之前的用户名,
我创建了这个正则表达式
[A-Za-z+ /w+0-9._%+-]+@
我的例子的结果是:
example: blabla,blabla,Test@Testing.com,blabla,blabla,blabla
result : Test@
如果没有@
我怎么能只得到测试
,最简单的方法是:([A-Za-z/0-9.+-]+)@
而不是使用您所使用的(
$1
在perl中,匹配tcl中的var,等等)顺便说一句,
我不知道电子邮件地址中可以有空格,你确定没有占用太多空间吗 编辑:
这里有一个关于lookaheads的小教程(支持Wiktor的评论)
将
@
转换为前瞻-(?=@)
(类似)。或者用(
和)
将整个图案括在@
之前,然后获取res[1]
值。@WiktorStribiżew该死,你太快了!什么是regex风格/编程语言?我建议。顺便说一句,你没有想到一个字符类中有几个+
是没有意义的吗?一个就够了。另外,/w
看起来像是一个损坏的\w
,并且\w
(取决于正则表达式的风格和实际需求)可能是一个错误的模式。对不起,我通常测试regexp,但这次我只是使用给定的regexp并盲目使用它。。。这就是你在工作中回答别人时得到的答案……:)至于+/w
等它们只表示regexp可以找到的字符,即使他指的是\w+
,而我不是一个很好的网络程序员,所以我不知道电子邮件地址的合法字符是什么——我只是拿走了他给我的。