私はしばらくの間、Tcl の正規表現マッチング パターンについて疑問に思っていましたが、それがどのように機能しているのかについて困惑していました。ところで、私は Wish と Tcl/Tk 8.5 を使用しています。
ランダムな文字列がMmmasidhmMm
保存されて$line
おり、コードは次のとおりです。
while {[regexp -all {[Mm]} $line match]} {
puts $data $match
regsub {[Mm]} $line "" line
}
$data
テキストファイルです。
これは私が得たものです:
m
m
m
m
m
m
私が期待していた間:
M
m
m
m
M
m
これを取得したときに、少し変更すると結果にどのように影響するかを確認するために、いくつかのことを試していました。
while {[regexp -all {^[Mm]} $line match]} {
puts $data $match
regsub {[Mm]} $line "" line
}
私は得る:
M
m
m
驚いたことに、$match
ケースを保持します。
$match
最初のケースでは、何らかの理由で自動的に小文字になるのはなぜだろうと思っていました。正規表現が実際にどのように機能するかを理解していない限り、何が間違っているのかわかりません。たぶん、私が知らないそれを修正するフラグがありますか?
いつかこの種のコードを実際に使用するかどうかはわかりませんが、それがどのように機能するかを学ぶことは、他の方法で役立つかもしれません. そこに何も見逃さなかったことを願っています。さらに情報が必要な場合はお知らせください。