У меня есть проблема, извлекая только UTF-8 символов, как ä,ö,ü,ß
(скажем, буквы, которые используются в словах) без символов, как !"§$%&/()+'
и т.д.Как получить UTF-8 Hashtags без специальных символов в PHP
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 "'? https://regex101.com/r/qP5oI9/3 –
Итак, какие именно символы * разрешены и которые * запрещены *? «Специальные символы» - это не вещь. Вы имеете в виду * письма против пунктуации *? Или что-то другое? – deceze