[.NET2] Regex Помогите с регулярным выражением
От: Аноним  
Дата: 22.06.09 12:39
Оценка:
Нужно из исходников выцепить все строковые константы при вызове FFF.EEE.GetString("Ошибка при выполнении действия")
Т.е. в этом случае получить: Ошибка при выполнении действия

Пример:
        private void b_Click(object sender, EventArgs e)
        {
            try
            {
                ABC.SetText(tb.Text);

                string str = FFF.EEE.GetString("A\"1\"") + FFF.EEE.GetString("A2");
            }
            catch (Exception)
            {
                MessageBox.Show(FFF.EEE.GetString("Ошибка при выполнении действия"), FFF.EEE.GetString("Ошибка"),MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }


Выход:
1) Ошибка при выполнении действия
2) Ошибка
3) A1
4) A2
Re: [.NET2] Regex Помогите с регулярным выражением
От: Пельмешко Россия blog
Дата: 22.06.09 13:04
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Нужно из исходников выцепить все строковые константы при вызове FFF.EEE.GetString("Ошибка при выполнении действия")

А>Т.е. в этом случае получить: Ошибка при выполнении действия

А>Выход:

А>1) Ошибка при выполнении действия
А>2) Ошибка
А>3) A1
А>4) A2

(?<=FFF.EEE.GetString\(")(?:\\.|[^"\\])*(?="\))

Не понимает raw-строки C# и не делает за Вас Regex.Unescape()

Если кодер — любитель whitespace то и на него найдётся управа:

(?<=FFF\s*.\s*EEE\s*.\s*GetString\s*\(\s*")(?:\\.|[^"\\])*(?="\s*\))


Правда обмануть всё равно раз плюнуть: в скобки, например, FFF.EEE взять
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.