Forum Discussion
uni
Altocumulus
Aug 22, 2007Test for characters in a string
I want to test whether any of a set of characters exists within a string. I used the code below, but wonder if anyone can suggest a more efficient (and more elegant) method:
string match "*\[XYZ\]*" $var2 Replies
- hoolio
Cirrostratus
I think scan would be faster and work assuming you can use a character class to define what you want to match.
Click here
[chars]
The input substring consists of one or more characters in chars. The matching string is stored in the variable. If the first character between the brackets is a ] then it is treated as part of chars rather than the closing bracket for the set. If chars contains a sequence of the form a-b then any character between a and b (inclusive) will match. If the first or last character between the brackets is a -, then it is treated as part of chars rather than indicating a range.
Aaron - Another option is to use the switch statement. So if you just want to see if "X", "Y", or "Z" are in a string, this would do the trick:
switch -glob $var { "*A*" - "*B*" - "*C*" { match found } default { no match found } }
This will perform a bit faster than a comparable regular expression or if/elseif statements.
-Joe
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects
