我有一组单词,例如{6-31G*,6-311G*,6-31 ++ G*,6-311 ++ G**}.如您所见,常见的片段是"6-31".我现在需要做的是检查字符串是否$variable包含这个片段.我知道我可以用这样的正则表达式做到:
if {[regexp {^6-31} $variable]} {
puts "You provided Pople-style basis set"
}
Run Code Online (Sandbox Code Playgroud)
但是我可以使用其他解决方案(只是出于好奇)?
gle*_*man 11
只是为了检查字符串是否包含特定的子字符串,我会使用 string first
set substring "6-31"
if {[string first $substring $variable] != -1} {
puts "\"$substring\" found in \"$variable\""
}
Run Code Online (Sandbox Code Playgroud)
您也可以使用string match或与glob匹配switch
switch -glob -- $variable {
*$substring* {puts "found"}
default {puts "not found"}
}
Run Code Online (Sandbox Code Playgroud)