我想刪除以space
和#
符號開頭的文本末尾的所有單詞。 不應刪除句子中的URL或主題標籤。刪除句子末尾的#標籤
示例文本:
hello world #dontremoveme foobar http://example.com/#dontremoveme #remove #removeme #removeüäüö
我試過,但它會刪除所有的井號標籤:
$tweet = "hello world #dontremoveme foobar http://example.com/#dontremoveme #remove #removeme #removeüäüö";
preg_match_all("/(#\w+)/", $tweet, $matches);
var_dump($matches);
我的想法是要檢查每一個字開始在文本的結尾領先#
用前面有space
,直到不再是這種情況。 如何將其轉換爲正則表達式?
我嘗試過了,得到這個錯誤:'警告:preg_match_all() function.preg-match-all]:未知修飾符'g'' PHP:'$ tweet =「hello world #dontremove我foobar http://example.com/#dontremoveme #remove #removeme#removeüäüö「; preg_match_all(「/(#\ S +)* $/g」,$ tweet,$ matches); var_dump($ matches);'我需要改變什麼? – Tom
請嘗試以下操作: '$ re =「/(#\\ S +)* $ /」; $ str =「hello world #dontremoveme foobar http://example.com/#dontremoveme #remove #removeme#removeüäüö」; preg_match_all($ re,$ str,$ matches);' 這是生成的代碼,你可以在這裏找到:https://regex101.com/r/eH4bJ2/1#code_0 – jonas
這可以工作,但'print_r $匹配)'輸出2個數組 - 如何獲得一個數組中的所有標籤? – Tom