我正在尝试使用字符类将所有小写字母重新编译为大写:
regsub -all { [:lower:] } $f { [:upper:] } f
但它没有进行替换。
答案 0 :(得分:6)
只需将文件读入字符串并使用string toupper即可。然后将其写回文件。
set fp [open "somefile" r]
set file_data [read $fp]
close $fp
set file_data [string toupper $file_data]
set fp [open "somefile" "w"]
puts -nonewline $fp $file_data
close $fp
答案 1 :(得分:2)
set f [string toupper $f]
f 是一些列表或字符串。如果你想要文件操作,像往常一样从文件中读取并写入。
虽然如果您只想使用regsub,请尝试一下
set f "this is a line"
regsub -all {.*} $f {[string toupper {&}]} f
set f [subst -nobackslashes -novariables $f]
现在 f 中的内容是大写的。
注意:当选择特定文本为大写或小写时,它看起来很长但很有用
谢谢,