0

我想删除所有#以字符串开头的用户名。我试过这个

preg_replace('/#/', '', 'blah blah blah #key blah blah');

但它只删除#.

我很感激任何帮助。

4

3 回答 3

3

/#[^\b]+/应该可以正常工作。

正则表达式的解释:

  • # #一个字字
  • [^\b]+ 匹配任何内容,直到遇到单词边界
    • ^ “不是”的意思
    • \b 单词边界,将匹配任何非字母数字字符(或字符串结尾),因此支持“ my string #username. Another string”来匹配#username例如。[^\s]+支持。(它将与期间相匹配)
    • + 意思是“重复一次或多次”

在代码中:

preg_replace('/#[^\b]+/', '', 'blah blah blah #key blah blah');
于 2013-03-01T11:36:32.187 回答
3

如果您的用户名不包含空格,那么这应该有效

preg_replace('/#[^\s]+/', '', 'blah blah blah #key blah blah');
于 2013-03-01T11:37:17.127 回答
1

试试这个 :

echo preg_replace('/#\w+/', '', 'blah blah blah #key blah blah');

输出 :blah blah blah blah blah

于 2013-03-01T11:39:00.077 回答