間の任意の言葉で「...-
」が含まれていることそのために_
、-
、_
、-
間の任意のランダムなジャンクで、我々は、2つの方法(あなたが他の区切り文字を置き換えることができますが、.
は正規表現で特別な処理を必要とする。[.]
または\.
のどちらかが行います)ことを行うことができます:
regexp {_.+-.+_.+-} $stringToMatchAgainst
string match {*_*-*_*-*} $stringToMatchAgainst
OK、技術的に(グロブマッチングである)最後のものがわずかに異なる何かを一致しますが、効果は同じです。
しかし、私はあなたが本当に探しているものであるかどうかはわかりません。あなたは本当にword
の後になっていると思いますか?おそらくセパレータもあります。単語のリストを取得するには
、我々は多少異なる技術(つまり、それが識別子に共通だからだけでなく、下線一致するよう\w
を使用することはできません)を使用する:あなたは後にしている場合は
set wordList [regexp -all -inline {[a-zA-Z0-9]+} $stringToMatchAgainst]
をあまりにセパレータは、最も簡単な方法はTcllibからtextutil::split::splitx
を使用することです:
package require textutil::split
set tokenList [textutil::split::splitx $stringToMatchAgainst {([-_.])} ]
最後のケースでは、word_word-word_word_word-word
の入力文字列で、この出力を与える:
word _ word - word _ word _ word - word
あなたの完璧な答えをありがとう、それはまさに私が探しているものです。 – Chris