我的输入如下
1 等等等等@username_。sblah sblah sblah
我需要的输出是跟随用户名_。
现在,我做这个表达
^.*\@([a-zA-Z0-9\.\_]+)$
哪个工作在以下
1 等等等等@username_。
但如果我将它用于整行,它就不起作用
所以它获取用户并在用户之前删除但是我如何让它在获取用户后删除其余部分
注意我使用 regex101 进行测试,如果您有更好的工具,请写在下面。
您的模式使用^$
这意味着它需要完全匹配,您的模式只是部分。
通过添加 a.*
它成为一个完整的正则表达式并按预期匹配。
"/^.*\@([a-zA-Z0-9\.\_]+).*$/"
另一种方法是使用像这样的部分正则表达式。
它跳过@之前的任何内容,然后将所有内容捕获到一个点
$str = "1 blah blah blah @username_. sblah sblah sblah";
preg_match("/.*?\@(.*?\.)/", $str, $match);
var_dump($match);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句