Извлечение слов, начинающихся с $ в строке в php

0

Я хочу сгруппировать слова, начинающиеся с символа $, из содержимого текстовой области. Это содержимое редактора. Пример параграф:

Hi $firstname,

Please find the company credentials mentioned below:

Employee Name:
Employee ID:
Employee username: $username
Email ID: $email
Password: $password




Regards,
Administration Team    

Мой код:

$pattern = '/([$])\w+/';
preg_match($pattern, $input, $matches);
print_r($matches);

Выход:

Array (
    [0] => $firstname 
    [1] => $ 
) 

Мне нужен вывод:

Array (
    [0] => $firstname 
    [1] => $username 
    [2]=>$email 
    [3]=>$password
)

Что я делаю не так?

  • 0
    Вам не нужно скобки вокруг [$] . Они несут ответственность за $matches[1] в вашем результате.
  • 0
    preg_match_all() - это то, что вам нужно, чтобы получить все совпадения.
Показать ещё 1 комментарий
Теги:
mysqli

2 ответа

1
Лучший ответ
$matches = array();
preg_match_all('/\$\w+/', $text, $matches);
print_r($matches);
1

Вам нужно использовать preg_match_all. preg_match возвращает только первое совпадение. Кроме того, исправьте регулярное выражение в соответствии с фактическим текстом:

$pattern = '/[$](\w+)/';
preg_match_all($pattern, $input, $matches);
foreach($matches as $match) {
    echo $match[0] . ': ' . $match[1];
}

Это приведет к выводу:

$firstname : firstname
$username : username
$email : email
$password : password

Ещё вопросы

Сообщество Overcoder
Наверх
Меню