所以我正在做类似推特的列表,我希望会员能够互相推文。
我想要做的是编写一个正则表达式,它将提取@sign和逗号之间的所有数据。
例如,
@foo, @bar, @foo bar, hello world
目前我有以下表达方式。
/@([a-z0-9_]+)/i
然而,这将停留在空间,所以不是在成员上注册“@foo bar”而是在@foo上识别它并忽略条形部分。
有人可以帮我改变那个查询,以便允许用户名有空格。
答案 0 :(得分:5)
答案 1 :(得分:1)
如果你真的想要在@符号和逗号之间匹配所有数据,你可以使用
/@(.+),/i
但我认为你需要的是......
/@([\w +]+),/i
...匹配所有单词字符(字母,数字和下划线!)以及@和逗号之间的空格。查看demo。
答案 2 :(得分:0)
我认为这就是你所需要的:
/@([a-z0-9_\s]+)/i
\s
是空间的符号。
答案 3 :(得分:0)
/@(.*?),/
?
使*
非贪婪,这就是为什么它会在第一个逗号后停止。你应该明白它不会匹配
@foo
没有逗号
答案 4 :(得分:-2)
<?php
$subject = "@foo, @bar, @foo bar, hello world";
$pattern = '/@(.*),.*/';
$matches = preg_match($pattern, $subject, PREG_SET_ORDER);
print_r($matches);
?>
<强> DEMO of REGEX PATTERN 强>