gpt4 book ai didi

regex - 如何在 tcl 中使用正则表达式严格删除重复字符

转载 作者:行者123 更新时间:2023-12-02 07:41:26 26 4
gpt4 key购买 nike

如何在TCL中严格使用正则表达式删除字符串中的重复字符?例如,我有一个像这样的字符串 aabbcddeffghh,我只需要“abcdefgh”这样的字符。我尝试使用 lsort unique,我能够得到唯一的字符:

join [lsort -unique [split $mystring {}]]

但我只需要使用 regexp 命令。

最佳答案

您不能仅使用 Tcl 的 regsub 命令从字符串中删除所有不连续的双字符。它不支持访问先行序列中的反向引用,这意味着任何删除方案都必然会遇到匹配区域重叠的问题。

最简单的解决方法是用 while 循环(主体为空)包裹起来,利用 regsub 将返回在给定 a 时执行的替换次数这一事实用于存储结果的变量(下面的最后一个参数):

set str "mississippi mud pie"
while {[regsub -all {(.)(.*)\1+} $str {\1\2} str]} {}
puts $str; # Prints "misp ude"

关于regex - 如何在 tcl 中使用正则表达式严格删除重复字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10696322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com