要捕獲所有的井號標籤在陣列中,並從該字符串刪除它,你可以做這樣的事情:
$string = 'Lorem ipsum, http://example.com/#hello consetetur diam #nonumy sed diam voluptua. #stack #overflow';
// match all hashtags and keep them in a named capture group, to easily get the key later.
preg_match_all('/(?P<hashtags>\#\w+)/', $string, $matches);
$string = str_replace($matches['hashtags'], '', $string);
var_dump($matches['hashtag']);
Array
(
[0] => #hello
[1] => #nonumy
[2] => #stack
[3] => #overflow
)
var_dump($string);
// 'Lorem ipsum, http://example.com/ consetetur diam sed diam voluptua. ' (length=70)
如果你喜歡這種方式,現在你只需要弄清楚如何修剪超出的空格。
----- ----- EDIT2
如果你想捕捉只有最後一個主題標籤必須在正則表達式改爲'/(?P<hashtag>\#\w+$)/'
。我們建議您使用explanation of the pattern。
----- ----- EDIT3
這種新的問題是不同的,並且打開所需要的邏輯的不同視圖。
//keeping the same $string as above, you can easily get the substring after a dot (for example) til the end of the string with:
$endOfString = substr($string, strrpos($string, '.') + 1);
// now you can use a regexp, or the 'explode()' function
preg_match_all('/(?P<hashtags>\#\w+)(?:\s)?/', $endOfString, $matches);
$string = str_replace($matches['hashtags'], '', $string);
var_dump($matches['hashtags']);
var_dump(trim($string));
與往常一樣,你應該玩一下就可以得到的東西對你的所有不同的情況
我想什麼你輸出str_replace函數want.Use功能 –