1

最後のバックスラッシュの後の 8 桁または 10 桁を抽出する必要があります。私は正規表現を十分に使用していませんが、これは私がこれまでに持っているものです(?!\\\\)(?<=.*\\)(?:[^\d]*)(?<id>\d+)(?:[^\d])

\\server\root\list\listName 082713\type_102113\25765199.bpo.pdf
\\server\root\list\listName 082713\type_102113\25765280.bpo.pdf
\\server\root\list\listName 082713\type_102113\25779752.bpo.pdf
\\server\root\list\listName 082713\type_102113\NAME1 0020412714_BPO.pdf
\\server\root\list\listName 082713\type_102113\NAME2 0020421822_BPO.pdf
\\server\root\list\listName 082713\type_102113\NAME3 0020443370_BPO.pdf

a:\listName 082713\type_102113\25765199.bpo.pdf
a:\listName 082713\type_102113\25765280.bpo.pdf
a:\listName 082713\type_102113\25779752.bpo.pdf
a:\listName 082713\type_102113\NAME1 0020412714_BPO.pdf
a:\listName 082713\type_102113\NAME2 0020421822_BPO.pdf
a:\listName 082713\type_102113\NAME3 0020443370_BPO.pdf

より一般的な

「hwnd」の助けを借りて、次の式は実際にこの問題を解決しますが、フォルダー名の一連の数字を抽出するという私の目標にも役立ちますが、「ルックアラウンド」式を簡単に変更できます。

(?<![^\\\D ])(?<id>\d+(?:-\d+)?)(?=(?:(?:\.[a-z]|[_-])))
4

3 に答える 3

1

このようなパターンは複数行モードで動作するはずです:

(?<id>\d+)[^\\\d]*$

これは、 group でキャプチャされた 1 つ以上の数字に一致し"id"、その後にバックスラッシュまたは数字以外の 0 個以上の文字が続き、その後に行末が続きます。

于 2013-10-22T20:14:22.017 に答える
0

多分私は何かが欠けているかもしれませんが、私は次のように行きます:

([0-9]{10}|[0-9]{8})[^\\]+$

DEMOで動作確認できます。

于 2013-10-22T20:13:50.803 に答える