鑑於串尋找正則表達式前後數
匹配170905-CBM-238.pdf
我想匹配170905-CBM
和.pdf
,這樣我可以替換/刪除它們並留下238
。
我已經搜索並找到可以工作但不能將它們放在一起的作品。
這個 - >(.*-)
將匹配第一部分和
這個 - >(.[^/.]+$)
將用最後一節
但我無法弄清楚如何將它們結合在一起,使其符合之前的一切,包括第二個短線以及之後的所有內容,包括期間(或延期),但不匹配之間的數字。
幫助:)並感謝您的關心。
鑑於串尋找正則表達式前後數
匹配170905-CBM-238.pdf
我想匹配170905-CBM
和.pdf
,這樣我可以替換/刪除它們並留下238
。
我已經搜索並找到可以工作但不能將它們放在一起的作品。
這個 - >(.*-)
將匹配第一部分和
這個 - >(.[^/.]+$)
將用最後一節
但我無法弄清楚如何將它們結合在一起,使其符合之前的一切,包括第二個短線以及之後的所有內容,包括期間(或延期),但不匹配之間的數字。
幫助:)並感謝您的關心。
有幾個選項來實現你Nintex需要什麼。
如果使用提取操作,使用(?<=^.*-)\d+(?=\.[^.]*$)
作爲模式。
查看regex demo。
詳細
(?<=^.*-)
- 積極的回顧後,需要立即到當前位置的左側,字符串(^
)的開始,那麼任何0+字符比LF其他儘可能多的了到的-
最後一次出現和隨後的子模式\d+
- 1或多個數字(?=\.[^.]*$)
- 正先行要求,立即至t的右他當前的位置,存在.
以及.
以外的0+字符,直到字符串的末尾。如果使用替換文本操作,使用
模式:^.*-([0-9]+)\.[^.]+$
替換文本:$1
見another regex demo(在上下文標籤顯示的結果替代)。
詳細
^
- 字符串錨開始.*
- 比LF其他到隨後的子模式的最後出現的任何字符0+ ...-
- 一個連字符([0-9]+)
- 第1組:一個或多個ASCII數字\.
- 串的端 - 字面.
[^.]+
- 比.
$
其它1個或多個字符。替換$1
參照存儲在組的值爲1
我不知道ninetex正則表達式,但sed
類型的正則表達式:
$ echo "170905-CBM-238.pdf" | sed -E 's/^.*-([0-9]*)\.[^.]*$/\1/'
238
在Perl同一作品:
$ echo "170905-CBM-238.pdf" | perl -pe 's/^.*-([0-9]*)\.[^.]*$/$1/'
238
嘗試['^ * - ([0-9] +)\ [^] + $'。](https://開頭regex101.com/r/5d3pfL/1)。 –
似乎匹配的一切 - 我需要它不匹配的數字(和擴展可能不總是PDF)--cheers – jlisham
如果你只是想提取'238',爲什麼要匹配其他什麼?只要做' - (\ d +)\。pdf $'。 – melpomene