我正在尝试使用字符类将文件中的所有小写字母转换为大写:
regsub -all { [:lower:] } $f { [:upper:] } f
但它不做替换。
只需将文件读入字符串并使用字符串 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
是的,上面会像魅力一样工作。
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中的内容是大写的。
注意:它看起来很长,但在选择特定文本为大写或小写时很有用
谢谢,