Check whether string contains fragment in Tcl
Asked Answered
V

1

9

I have a set of words, e.g. {6-31G*, 6-311G*, 6-31++G*, 6-311++G**}. As you may see, the common fragment is "6-31". What I need to do in Tcl now is to check whether string under $variable contains this fragment. I know I could do it with regular expression like this:

if {[regexp {^6-31} $variable]} {
  puts "You provided Pople-style basis set"
}

but what other solution could I use (just out of curiosity)?

Vortex answered 9/12, 2016 at 18:32 Comment(0)
N
25

Just to check if a string contains a particular substring, I'd use string first

set substring "6-31"
if {[string first $substring $variable] != -1} {
    puts "\"$substring\" found in \"$variable\""
}

You can also use glob-matching with string match or switch

switch -glob -- $variable {
    *$substring* {puts "found"}
    default      {puts "not found"}
}
Nunley answered 9/12, 2016 at 18:42 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.