如何在tcl regsub中无一例外地制作大写和小写字母?
How to make without exception uppercase and lowercase letters in tcl regsub?
我要无一例外地regsub,以免加倍我做一个regsub。
之前的例子:
regsub -all "feat" $songtitle "" songtitle
regsub -all "Feat" $songtitle "" songtitle
我想要一个简单的 regsub 行:
regsub -all "feat" $songtitle "" songtitle
如果要regsub的词很多的话有点不方便,我希望regsub简单一点,没有例外,每个词只有一行regsub,而不是大写和两行小写字母。谢谢
您可以为 regsub
指定 -nocase
选项,使其在匹配时忽略大小写。
regsub -all -nocase {feat} $songtitle "" songtitle
您还可以通过将 (?i)
标记放在回复的开头来启用该操作模式:
regsub -all {(?i)feat} $songtitle "" songtitle
你可能也应该在那个 RE 中加入一些 \y
(一个单词边界约束),这样它就不会把 defeated
变成 deed
:
regsub -all {(?i)\yfeat\y} $songtitle "" songtitle
(一旦你向 RE 添加反斜杠或方括号,在 Tcl 中将 RE 放在花括号中是非常重要的。否则你最终会使用大量反斜杠......)
还要注意 string map
命令:
string map {feat "" Feat ""} $songtitle
当您实际上不需要正则表达式时很有用。
我要无一例外地regsub,以免加倍我做一个regsub。
之前的例子:
regsub -all "feat" $songtitle "" songtitle
regsub -all "Feat" $songtitle "" songtitle
我想要一个简单的 regsub 行:
regsub -all "feat" $songtitle "" songtitle
如果要regsub的词很多的话有点不方便,我希望regsub简单一点,没有例外,每个词只有一行regsub,而不是大写和两行小写字母。谢谢
您可以为 regsub
指定 -nocase
选项,使其在匹配时忽略大小写。
regsub -all -nocase {feat} $songtitle "" songtitle
您还可以通过将 (?i)
标记放在回复的开头来启用该操作模式:
regsub -all {(?i)feat} $songtitle "" songtitle
你可能也应该在那个 RE 中加入一些 \y
(一个单词边界约束),这样它就不会把 defeated
变成 deed
:
regsub -all {(?i)\yfeat\y} $songtitle "" songtitle
(一旦你向 RE 添加反斜杠或方括号,在 Tcl 中将 RE 放在花括号中是非常重要的。否则你最终会使用大量反斜杠......)
还要注意 string map
命令:
string map {feat "" Feat ""} $songtitle
当您实际上不需要正则表达式时很有用。