regex Tcl regsub问题

xcitsw88  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(90)

我正在尝试编写一个TCL脚本来regsub文件内容中的字符串。
我要搜索的字符串是一个十六进制值,表示为X“12312312”我想用另一个十六进制值替换此字符串,例如X“ABCDEF 12”
由于十六进制值将改变每次我运行我的脚本,我希望搜索到引号之间的。
如果我测试我的regsub如下:
regsub X"*" $content X"ABCDEF12"(其中$content是我读入的文件)regsub是成功的,但是当我检查$content时,它更新了十六进制值,如下所示:
X“ABCDEF 12“11223344”
有没有人能告诉我我哪里做错了
提前感谢

pinkon5k

pinkon5k1#

*量词的使用是错误的;你需要提供一些原子,量词应用于,例如,.的任何字符;更好:

regsub -nocase -- {X"[A-Z0-9]*"} $content X"ABCDEF12"

此外,您还希望显式设置大小写敏感性!

更新

正如Donal建议的那样,您可以使用嵌入式选项(?i)打开不区分大小写的匹配,如:

regsub -- {(?i)X"[A-Z0-9]*"} $content X"ABCDEF12"

相关问题