4

我正在尝试使用字符类将文件中的所有小写字母转换为大写:

 regsub -all { [:lower:] } $f { [:upper:] } f

但它不做替换。

4

2 回答 2

6

只需将文件读入字符串并使用字符串 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
于 2013-01-03T13:01:15.440 回答
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中的内容是大写的。

注意:它看起来很长,但在选择特定文本为大写或小写时很有用

谢谢,

于 2013-01-04T13:07:28.540 回答