RegEx для выражений, начинающихся с $ - PullRequest
0 голосов
/ 04 июня 2010

У меня есть выражение ($ ASMLNA $ * $ TSM $ * 8 * ($ GrossDownTarget $ * $ 005930K $) + 15)

Теперь я пытаюсь получить все переменные, которые находятся между $. Пример $ ASMLNA $, поэтому для меня это должно дать ASMLNA.

Я пытался использовать RegEx, и это то, что я смог сделать до сих пор

  Regex r = new Regex(@"[^\$]");

        string Contents = txtRegEx.Text.Trim();
        MatchCollection ImageCollection = r.Matches(Contents);
        string tempContents = string.Empty;
        foreach (Match match in ImageCollection)
        {
            tempContents+= match.Value;
        }

Будет замечательно, если кто-нибудь укажет мне правильное направление.

Ответы [ 2 ]

3 голосов
/ 04 июня 2010

Попробуйте это регулярное выражение:

(?<=\$)\b[^$]+\b(?=\$)

Если ваши переменные могут содержать только символы слова ([a-zA-Z0-9_]), это регулярное выражение будет лучше:

(?<=\$)\w+(?=\$)
0 голосов
/ 04 июня 2010

Ваше выражение соответствует только $ в начале строки. Чтобы получить группы, я думаю, вы хотите что-то вроде этого: @ "(\ $. +? \ $)"

Редактировать: Упс. Я пропустил немного о снятии $. Попробуйте эту версию вместо: \ $ (. +?) \ $

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