我想删除字符串中以#
开头的所有用户名。我试过这个
preg_replace('/#/', '', 'blah blah blah #key blah blah');
但它只删除了#
。
我感谢任何帮助。
答案 0 :(得分:4)
如果您的用户名不包含空格,那么这应该有效
preg_replace('/#[^\s]+/', '', 'blah blah blah #key blah blah');
答案 1 :(得分:3)
/#[^\b]+/
应该可以正常使用。
正则表达式的解释:
#
a litteral #
字符 [^\b]+
匹配任何内容,直到命中单词边界
^
表示“不是” \b
是word boundary,会匹配任何非字母数字字符(或字符串结尾),因此支持“my string #username. Another string
”匹配{{1}这就是例如。 #username
支持不。 (它会与期间相匹配) [^\s]+
表示“重复一次或多次” 在代码中:
+
答案 2 :(得分:1)
试试这个:
echo preg_replace('/#\w+/', '', 'blah blah blah #key blah blah');
输出:blah blah blah blah blah