2016-07-24 12 views
0

Gretings! tcl正規表現を使用して不要な文字を取り除き、目的の文字列を保持しようとしています。tcl正規表現、2つのパターンの間で文字列を引き出そうとしています

4つの基本的な文字列型は、私がキャプチャしたい何

I34/pAVDD_3 
I32/pDVDD_15_2 
I999/pAGND 
I3/pDOUT_LG0 

ていることは、それが存在する場合には、間にpと文字列の最後または最後のアンダースコア&数だものです。上の文字列では、AVDD、DVDD_15、AGND、およびDOUT_LG0をキャプチャしたいと考えています。

私は[p](\w*)?[_][\d*]でそれを持っていたと思っていましたが、I3/pDOUT_LG0ではうまく動作せず、別のものを試していたのですが、うまくいくパターンを見つけることができません。

ありがとうございます!

答えて

0

どの程度

regexp {p(?:(\w+)_\d|(\w+))$} $str -> c1 c2 
set result $c1$c2 

つまたは他は空になり、その結果、それらの単純連結したものです。

regsub -all {.+p|_\d$} $str {} 

ドキュメント: regexpregsubSyntax of Tcl regular expressions

+0

優れ

別の可能な解決策は、不要な部分を取り除くことです!広告されたとおりに動作します。 – jtw71

関連する問題