2015-11-15 56 views
3

我有以下文字:正則表達式只有14號

DiretorioXmlImpressao=C:\\Program Files (x86)\\TESTE\\XmlImpressao\\08187168000160\\ 

我想選擇(在文本的末尾14個字符的句子)所有,但CNPJ,所以我嘗試了以下正則表達式:

DiretorioXmlImpressao=[^0-9]+ 

返回:

DiretorioXmlImpressao=C:\\Program Files (x 

但我EXPEC特德:08187168000160


對不起球員,我有正則表達式幾點體會,我只是不很好地表達自己。

我想其實這樣做的回報:

DiretorioXmlImpressao=C:\\Program Files (x)\\TESTE\\XmlImpressao\\ 

原因我想僅僅只有14個字符和\,因爲我可以在這個替換使用。當這個路徑中的數字如「x86」時,這是工作execept。

regexp_replace(teste,'DiretorioXmlImpressao=[^0-9]+',E'DiretorioXmlImpressao=P:\\TESTE\\XmlImpressao\\','ig'); 

最後希望我的正則表達式的結果,並且取而代之的是下面這樣

DiretorioXmlImpressao=P:\\TESTE\\XmlImpressao\\08187168000160\\ 

謝謝!

+1

你試過了嗎?/ DiretorioXmlImpressao =。*?([0-9] +)\\ $ /' – andlrc

+2

你告訴你的正則表達式得到的不是0-9的數字。它正在做你剛剛告訴它做的事情...... – SISYN

+1

如果你只需要開始部分[也嘗試像這樣](https://regex101.com/r/sA1zQ8/1)。 –

回答

1

我已經測試此類似泡泡龍泡泡說到做到

DiretorioXmlImpressao=.*\D(?=\d) 

,它的worki ng像我想

DiretorioXmlImpressao=C:\\Program Files (x86)\\TESTE\\XmlImpressao\\ 

謝謝大家!

1

使用此模式:

/^(.*)([^\\]+\\?)$/ 

它會除了爲結束第一分組比賽,和結尾部分作爲第二回的部分。

如果您不希望第二個匹配的部分,更新了第二組:

/^(.*)(?:[^\\]+\\?)$/ 
2

我還沒有找到一個品位方式做到這一點不匹配組。

選擇所有,但14個字符的句子在文

的結束意味着這對我來說(當然,最後用反斜槓加,因爲我假設你想要的):

/^(.*)[0-9]{14}\\$/