Часто встречается необходимость выделить из строки
выражения, которые находятся между простых скобок. Для примера у меня была
задача найти в коде все вхождения функции function(var1, var2) и получить оттуда переменные.
Подобные задачи решаются с помощью регулярных выражений. В
данном случае:
function\((?<val>.*?)\)
Разберем данное выражение подробнее.
function – последовательность символов до скобок
(название нашей функции)
\(, \) - экранированные символы «скобка»
(?, ?) – Выделяет часть нужного нам выражения в группу
<val> - группа нужного нам выражения
.* - учитывать все символы между скобками
В итоге у нас получился следующий код (для C#)
Regex pattern = new Regex(@"function\((?<val>.*?)\)"); foreach (Match m in pattern.Matches(fStr)) { if (m.Success) { string val1 = m.Groups["val"].Value.Split(',')[0]; string val2 = m.Groups["val"].Value.Split(',')[1]; } }
Комментарии
Отправить комментарий