Regex.matches Найти наименьшее количество символов на каждое найденоC#

Место общения программистов C#
Ответить
Anonymous
 Regex.matches Найти наименьшее количество символов на каждое найдено

Сообщение Anonymous »

Я хочу итерацию по каждому матчу, но мой код находит только 1 матч, получив все между первым и последним персонажем, чтобы найти в шаблоне.

Код: Выделить всё

value = "{account_id}{user_id}{someValue}";
Value could include any number of these "{str}" substrings where str is upper or lower case characters and can contain _.

But it only finds 1 match (the whole thing) using the following pattern: "{\\S+}"

foreach (Match match in Regex.Matches(value, "{\\S+}"))
{
var key = match.Value.Replace("{", "").Replace("}", "").Trim();
// do stuff with key...
}
< /code>

Это имеет смысл, потому что «{» и «}»-это не белый космический символ, поэтому я попытался использовать «{[a-za-z _]}» < /code> Но это тоже не удается.foreach (Match match in Regex.Matches(value, "{[a-zA-Z_]}"))
{
var key = match.Value.Replace("{", "").Replace("}", "").Trim();
// do stuff with key...
}
< /code>

Ключ переменной в цикле должен быть «Account_ID», затем «user_id», затем «SomeValue», однако это всегда «Account_IDUSER_IDSOMEVALUE (все это). < /p>

Как я могу это исправить? шаблона, но он возвращает только 2 совпадения (пустой набор и все это снова).>

Подробнее здесь: https://stackoverflow.com/questions/566 ... atch-found
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»