我有以下代码和正则表达式试图从字符串中删除主题标签:
$text = "#jualan #jualanku #bag #bandung #jakarta #olshop #olshopindo #olshopindonesia #trusted #trustedseller #trustedolshop #tas #tasbagus #goodquality #premium #premiumquality #trixie #trixie bag #baju #kaos #spandex #bestseller #trixiewardrobe \nBella top\n\nSize s m l\n\nIdr 99.000\n\nLine: merlinehadiwijaya";
$newCaption = preg_replace('/#(?=[\w-]+)/', '', preg_replace('/(?:#[\w-]+\s*)+$/', '', $text));
但是它只会删除“#”而不是整个主题标签。我的正则表达式做错了什么?
我想要的结果是:
\nBella top\n\nSize s m l\n\nIdr 99.000\n\nLine: merlinehadiwijaya
最佳答案
您首先使用的是 Positive Lookahead 断言,该断言仅断言指定字符跟在前面的井号之后,这就是只从输入字符串中删除井号的原因。其次,您正在尝试使用不必要的级联 preg_replace()
调用。你可以简单地在一个电话中完成这个......
$newCaption = preg_replace('/#\S+ */', '', $text);
注意:您的 bag
也没有前面的 hashtag,因此这也会保留在结果中。
输出
bag
Bella top
Size s m l
Idr 99.000
Line: merlinehadiwijaya
关于php - 正则表达式从字符串中删除主题标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26478194/