2012-10-27 64 views
4

我試圖使用正則表達式在記事本++改變空格的標籤在這樣的經常在記事本++改變空格的標籤表達

01 fsdfsd

01 01 fsdfsd

01 01 * fsdfsd

01 01 01 fsdfsd

01 01 01 * fsdfsd

如何在數字之間保留空格並僅更改最後一個空格?

謝謝。

回答

6

搜索:

[ ]([a-zA-Z]) 

(請注意,在字符類的前面的空間),並用替換:

\t$1 

的替代方案,可能更適合,如果你還具有不同格式的行,或者如果fsdfsd可能包含空格,是這樣的:

^((?:\d+\*?)(?:[ ]\d+\*?)*)[ ] 

現在替換

$1\t 

這與用空格分隔可選的星號位的最長的串之後的任何空間相匹配。

+0

你不需要一個*積極*前瞻嗎? '(?= [a-zA-Z])' – Bohemian

+0

@波希米亞人,對吧。 Ω,感謝您讓我知道 –

+0

第二個完美的作品。謝謝 – szpon

2

您可以使用外觀頭僅匹配空格,然後是數字以外的內容,但由於記事本不支持四處查看,因此您必須採用捕獲和釋放方法尋找字母:

search: " +([a-zA-Z])" (don't include the quotes - there to show the space) 
replace: \t$1 
+0

您的糾正解決方案几乎沒有什麼只是m.buettner的解決方案的副本幾乎在您的 –

+1

@Ωmega之前張貼很長時間,除了我允許多個空格使用'+',所以它稍好一點的恕我直言。由於我們沒有希臘鍵盤,所以通知你很麻煩 – Bohemian