0

次のコードを使用して、のようなテキストと一致させていますcell ("acf12bcjd6")。引用符内の値は変化し続けるため、それらすべてをキャプチャする必要があります。私が使用したコードは次のとおりです。

foreach searched_data $final {   
    [regexp {cell\(.*\)+} $searched_data match]   
    puts "$match"   
}

しかし、「一致に到達できません。そのような変数はありません」というエラーが表示されます。私は自分の間違いを理解していません。私はそれを正しくやっていますか?

4

2 に答える 2

1

正規表現パターンが文字列と一致せmatchず、設定されていないため、プログラムが失敗しています。これを試して

foreach searched_data $final {
    if {[regexp {cell +\(\"(.*)\"\)} $searched_data junk match]} {
        puts stdout $match
    }
}

cellこのパターンでは、 と 開き括弧の間のスペースはオプションであると想定しています。また、引用符を取り除きたいと思っていると思います。

于 2013-07-02T22:50:03.330 に答える
0

代わりにこれを使用してみてください:

foreach searched_data $final {   
    set match [regexp {cell ?\([^)]*\)} $searched_data]   
    puts "$match"   
}
于 2013-07-02T22:33:21.690 に答える