2015-12-18 3 views
0

В PHP, если я захвачу строкуPHP регулярное выражение, как захватить подстроку переменной

$string = 'gardens, countryside @teddy135'

как я захватить @username из этой строки в новую переменную в PHP имя пользователя начинается с @ предшествует пробел и завершение в пространстве или конце строки?

, так что я бы в конечном итоге с

$string = 'gardens, countryside' $username ='@teddy135'

+1

['\ s @ (\ w +) \ b'] (https://regex101.com/r/tF0nE5/1) – Tushar

+0

@Tushar вы должны разместить это как ответ с объяснением –

ответ

2

Используйте следующее регулярное выражение

\[email protected](\w+)\b 

Regex101 Demo

  1. \s: Матчи один космический
  2. @: Матчи @ буквально
  3. (\w+): Матчи один или несколько буквенно-цифровые символы, включая _ и поместить его в первом захвате группа
  4. \b: граница слова

Код:

$re = "/\\[email protected](\\w+)\\b/"; 
$str = "gardens, countryside @teddy135 @tushar and @abc"; 

preg_match_all($re, $str, $matches); 
+0

это будет preg_match_all ('\ s @ (\ w +) \ b', $ string, $ username); –

+0

@BarryHamilton Я добавил код тоже в нижней части ответа – Tushar

+0

приветствия, я соглашусь, когда это позволит окно, вы были очень быстры! –

0
$regex = "/\s(@\S+)/"; 
$mystr = "gardens, countryside @teddy135 @xyz-12 and @abc.abc"; 

preg_match_all($regex, $mystr, $matches); 
print_r($matches); 
Смежные вопросы