Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 前用户名@_Regex - Fatal编程技术网

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+
,而我不是一个很好的网络程序员,所以我不知道电子邮件地址的合法字符是什么——我只是拿走了他给我的。