簡體   English   中英

tcl正則表達式,嘗試在兩個模式之間提取一個字符串

[英]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 {}

文檔: regexpregsubTcl正則表達式的語法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM