Позвольте мне прояснить логику, которую я хотел достичь.
но как слова, начинающиеся с «@» а также «#msgstr «не получать работу в шаблоне preg_match_all, например.
$pattern = '/\b(\@abdulcollo|tuskys|\#teamBata|50\% off|baby|\@mystic_false)\b/i';
$string = 'Anga lonely everyday RT @Mystic_False: Heehe @AbdulCollo aneno ka idhi tuskys in lonely bana #TeamBata in Kakamega baby! @danaceda @kibalimoreithi @olivermathenge @batakenya @ Tuskys Mega Mall 50% off';
prag_match_all($pattern, $string, $matches);
var_dump ($ matched) возвращает под массив.
$matches = array('tuskys', 'baby', '50% off');
но я тоже хотел иметь ‘@Abdulcollo’, ‘#TeamBata’, ‘@Mystic_False’, Я избежал «@» и «#», но все равно они не совпадают …!
Любая помощь высоко ценится, я хочу логику для Pure PHP.
НОТА : Я создаю строчные буквы, например, строчные слова при создании шаблона для слова тега, а также нижнюю строку комментария, так что это не проблема.
Это из-за границы слова \b
, Не существует границы слова между несловесным символом и несловесным символом. Так что измените свое регулярное выражение на,
(?:\b|\B)(@abdulcollo|tuskys|#teamBata|50% off|baby|@mystic_false)\b
Других решений пока нет …