Tcl regexp:変数に数値が含まれているかどうかを確認するには?

Tcl regexp:変数に数値が含まれているかどうかを確認するには?

以下は、変数に0から9の数字があることを確認するtclスクリプトです。

    set a "abc"

    if {[ regexp {[0-9]*} $a ]} {
       puts "Found number in $a"
    } else {
       puts "Doesn't find number in $a"
    }

ただし、実行すると「Abcで見つかった番号」と報告されます。

ベストアンサー1

使用した正規表現は「ゼロ個以上の数値マッチング」を意味するためです。この文字列はabcゼロの数字と一致するため、肯定的な結果が得られます。*(「0以上」)のみを削除すると、期待どおりに機能します。

set a "a2bc"

if {[ regexp {[0-9]} $a ]} {
        puts "Found number in $a"
} else {
        puts "Doesn't find number in $a"
}

おすすめ記事