TCL regsub问题

问题描述 投票:0回答:1

我正在尝试编写一个 TCL 脚本来 regsub 文件内容中的字符串。

我正在搜索的字符串是一个十六进制值,表示为 X"12312312" 我想用另一个十六进制值替换这个字符串,例如 X"ABCDEF12"

由于每次运行脚本时十六进制值都会发生变化,因此我希望搜索时使用引号之间的通配符。

如果我按如下方式测试我的regsub:-

regsub X"*" $content X"ABCDEF12"
(其中 $content 是我读入的文件) regsub 成功,但是当我检查 $content 时,它已更新十六进制值,如下所示:-

X“ABCDEF12”11223344”

任何人都可以指导我做错了什么吗?

提前非常感谢

regex tcl regsub
1个回答
0
投票

您使用

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

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

此外,您想明确设置区分大小写!

© www.soinside.com 2019 - 2024. All rights reserved.