Получить символы сразу после совпадения в цикле foreach - PullRequest
0 голосов
/ 29 мая 2020

На моем сайте я хочу определить, упоминает ли кто-то имя пользователя в комментарии, например: what's up /u/username.

Как именно я могу извлечь символы, следующие за /u/ в foreach l oop ?

Примерно так:

if (strpos($commentString, '/u/') !== false) {
    foreach /u/ in $commentString {
        $username = the text immediately after /u/, stopping at anything that isn't a letter or a number
    }   
}

1 Ответ

1 голос
/ 29 мая 2020

Вы можете использовать preg_match_all с регулярным выражением

/u/([a-z0-9]+)

для захвата имен пользователей в тексте. Например:

$text = "what's up /u/username have you seen /u/user21 today?";

preg_match_all('#/u/([a-z0-9]+)#i', $text, $matches);
foreach ($matches[1] as $user) {
    echo "found user $user\n";
}

Вывод:

found user username
found user user21

Демо на 3v4l.org

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...