У меня проблема с извлечением только букв UTF-8, таких как ä,ö,ü,ß
(скажем, букв, которые используются в словах), без символов, таких как !"§$%&/()+'
и т. д.
function getHashtags($string)
{
$string = html_entity_decode($string, ENT_QUOTES, "utf-8");
preg_match_all('/(\#)([^\s]+)/u', $string, $matches);
if ($matches) {
$hashtagsArray = array_count_values($matches[0]);
$hashtags = array_keys($hashtagsArray);
$hashtagLine = '';
foreach ($hashtags as $hashs) {
$hashs = strtolower(trim($hashs));
$hashtagLine .= $hashs;
}
}
return $hashtagLine;
}
это мое текущее решение, оно получает строковый текст, извлекает из него хэштеги и возвращает их в строке. Проблема в том, что с этим решением хэштеги также обрабатываются как #example!"$/%
(и не обрезаются непосредственно перед !
как #example
).
Есть ли у кого-нибудь подход (Regex) для извлечения твиттера, такого как хэштеги UTF-8, без этих нежелательных знаков пунктуации из строки в PHP?
"/(?<=^|\\P{L})#\\b\\p{L}+\\b/u"
? regex101.com/r/qP5oI9/3 - person Wiktor Stribiżew   schedule 20.04.2015