У меня есть файл, который имеет следующий вид:Извлечение части файла внутри фигурных скобок, используя регулярные выражения
some text
some more text
. . .
. . .
data {
1 2 3 5 yes 10
2 3 4 5 no 11
}
some text
some text
Я хочу, чтобы извлечь data
части файла, используя регулярное выражение, используя следующую процедуру:
proc ExtractData {fileName} {
set sgd [open $fileName r]
set sgdContents [read $sgd]
regexp "data \\{(?.*)\\}" $sgdContents -> data
puts $data
}
Но это дает следующее сообщение об ошибке:
couldn't compile regular expression pattern: quantifier operand invalid
Я не могу понять, что не так с регулярным выражением. Любая помощь будет высоко оценен.
Забавный, вы потеряли знак вопроса. Используйте '. *?' Вместо '?. *' :) – HamZa
Это работает, спасибо вам большое :) Я смотрел примеры в http://www.tcl.tk/man/tcl8.4/TclCmd/regexp .htm, где механизм '?' недостаточно ясен. Если бы вы могли написать короткое объяснение о том же, это было бы очень полезно для многих людей. – Dronacharya
Взгляните на [этот вопрос] (http://stackoverflow.com/questions/2301285). Что касается вашего вопроса, который вы сделали, речь идет о «опечатке», поэтому он не подходит для SO, и если вы измените его, то это будет дубликат :) – HamZa