Мое регулярное выражение на самом деле не делает то, что я хочу. Он должен найти все матчи в моем текстовом файле, где строка начинается с:проблемы с регулярным выражением, соответствующие шаблону
func anyword() {
Узор будет делать это, но я хочу остановиться на следующем }
. Но если один или несколько из этого появляется:
SomeFunction();
он должен пропустить следующий }
.
Вот пример текста, который он будет сканировать. Каждая строка комментируется, чтобы показать, что он должен там делать:
override func something() { // here is a start pattern
// still looking for an }
halloworld() { }; // bracket } found but is ignored because line also contains "()"
// still looking for an }
// still looking for an }
} // found closing bracket } end of match
Это шаблон, который я в настоящее время с помощью:
\w+\s+func\s\w+\(\)\{\s+(.*?)\s+\}
regex не поставляется из коробки для сопоставления произвольного числа вложенных конструкций. но .net regex добавляет регулярное выражение только для этого: https://msdn.microsoft.com/en-us/library/bs2twtah(v=vs.110).aspx#balancing_group_definition – sweaver2112