用hash替换单词



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

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

但是它只去除#

谢谢你的帮助。

如果您的用户名不包含空格,那么这应该可以工作

preg_replace('/#[^s]+/', '', 'blah blah blah #key blah blah');

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

正则表达式解释:

  • # #字符
  • [^b]+ 匹配任何内容,直到到达单词边界
    • ^ 表示"不"
    • b 是一个字边界,将匹配任何非字母数字字符(或字符串的结尾),因此支持"my string #username. Another string"只匹配#username,这是一些例如。[^s]+不支持。(它将与周期匹配)
    • + 表示"重复一次或多次"
在代码:

preg_replace('/#[^b]+/', '', 'blah blah blah #key blah blah');

试试这个:

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

output: blah blah blah blah blah

最新更新