[英]tcl regular expression, attempting to pull out a string between two patterns
問候! 我正在嘗試使用tcl正則表達式去除不必要的字符並保留所需的字符串。
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,經過一段時間嘗試了不同的嘗試之后,我無法找到一種模式將工作。
謝謝!
怎么樣
regexp {p(?:(\w+)_\d|(\w+))$} $str -> c1 c2
set result $c1$c2
一個或另一個將為空,因此結果是它們的簡單連接。
另一種可能的解決方案是剝離不需要的部分:
regsub -all {.+p|_\d$} $str {}
文檔: regexp , regsub , Tcl正則表達式的語法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.