0

次の形式のファイルがあります。

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

正規表現の何が問題なのかわかりません。どんな助けでも大歓迎です。

4

2 に答える 2

0

次の正規表現行が機能します

regexp "data \\{\\\n(.*?)\\\n\\s*\\}" $sgdContents -> data

元の正規表現の唯一の主な誤りは、最初の一致が見つかるとすぐに一致を停止するように正規表現エンジンに指示する、貪欲でない一致インジケータ (?) の配置ミスでした。

于 2013-07-23T10:38:18.293 に答える