Попробуйте:
var matches = Regex.Matches(input, "(\\$\\w+) ");
В приведенном выше тексте \\w
соответствует символам слова.Это AZ, az, - и _ если я прав.Если вы хотите сопоставить все, что не является пробелом, вы можете использовать \\S
.Если вы хотите определенный набор, укажите это, например, через [a-zA-Z0-9]
.
. Скобки вокруг (\\$\\w+)
гарантируют конкретное совпадение, matches[0].Groups[1].Value;
дает значение внутри бэкетов (т. Е. Исключая завершающийпробел).
В качестве полного примера:
string input = "$a1 $a2 $b1 $b2";
foreach (Match match in Regex.Matches(input, "(\\$\\w+) "))
{
Console.WriteLine(match.Groups[1].Value);
}
Это приводит к следующему выводу:
$a1
$a2
$b1
$ b2, конечно, опущен, поскольку онзавершающий пробел.