2017-02-11 61 views
0

原諒可能的問題,因爲我對制定自己的正則表達式以及我提出的任何事情都相當陌生,過去一小時我就這麼做了。ST3正則表達式找到沒有被其他字符包圍的數字序列

我有我與崇高的文本3.我試圖在ST的搜索使用正則表達式替換功能,以確定那些不包圍所有2-4的數字序列工作一個巨大的文本文件通過任何其他字符

這將確定如下序列:

01 
330 
0302 

而忽略以下:

1 
10405 
3042-2 
(3030 
x5590 

以我的文檔的上下文中,不受任何其他字符包圍的序列基本上是指存在於它自己的路線。如果

所以換句話說,在自己的行存在一個2-4的數字序列,它需要被識別。如果不是,或者是< 2或> 5位數字,則需要單獨保留。

我已經能夠拿出迄今最好的是這樣的:

\b\n[0-9]{2,4}\n\b

...它適用於那些不夠好序列的鑑定,但實際上並不顯得讓我來代替識別的區域:點擊更換或按下快捷鍵按Ctrl + Shift + H似乎只突出序列,然後繼續前進。如果這與我正在使用的正則表達式的問題,我還能使用什麼?

回答

1

我不是你的要求太清楚,但如果你想單獨一行匹配2-4個數字,這應該這樣做

^[0-9]{2,4}$ 

的^比賽開始線, $比賽結束

如果你想允許前導或尾隨空格,你可以做到這一點

^[ ]*[0-9]{2,4}[ ]*$ 

你有什麼要替換的文本?如果說你想刪除匹配的文本和整行,你可以這樣做

^[0-9]{2,4}$\n 

這匹配整個行,包括換行符。

或者,你可以捕捉括號

^([0-9]{2,4})$ 

匹配的文本,並做了更換這樣

foo$1bar 

的$ 1無論是在(...)。這會給你

foo01bar 
foo330bar 
foo0302bar 

And ignore the following: 

1 
10405 
3042-2 
(3030 
x5590 
+0

我想你可能會略微誤解我在我的例子中所要求的,但沒關係;這個答案是完美的。第一個正則表達式正好回答了我所要求的,第二個與'\ n'更進一步,爲我節省了刪除第一個解決方案和我自己的空白行的額外步驟。非常感謝。 – Hashim

相關問題