一段时间以来,我一直想知道 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
由于某种原因自动变为小写。除非我不了解正则表达式实际上是如何工作的,否则我不确定我可能做错了什么。也许有一个我不知道的修复它的标志?
我不确定有一天我是否真的会使用这种代码,但我想了解它的工作原理可能会在其他方面对我有所帮助。我希望我没有错过那里的任何东西。如果您需要更多信息,请与我们联系!