К основному контенту

Сообщения

Сообщения за март, 2016

Получить все подстроки между круглыми скобками с помощью регулярных выражений

Часто встречается необходимость выделить из строки выражения, которые находятся между простых скобок. Для примера у меня была задача найти в коде все вхождения функции function( var 1, var 2) и получить оттуда переменные. Подобные задачи решаются с помощью регулярных выражений. В данном случае: 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 ] ;