2016-03-04 76 views
4

我創建了一個正則表達式來擺脫空格,製表符,新線等正則表達式來去除新行和空格

(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+ 

我的問題是,它的一些空間和一些新的線路,比賽不是全部他們。這是爲什麼?

我曾嘗試:

(^[\r\n]*|[\r\n]+)[\s\t+]*[\r\n]+ 

,但似乎仍然沒有匹配多個空格

Regex tester demo

+0

[使用'g'標誌](https://regex101.com/r/gW8rB2/2)。另一個['[\ n \ s \ r] +'](https://regex101.com/r/gW8rB2/3) – Tushar

+1

我可以在哪裏聽雷鬼? –

+0

@ChristianStewart自動更正Safari瀏覽器哈哈 – user4756836

回答

0

我不太確定要在這裏實現什麼。但是,如果你在問題中陳述,只需**你所需要做的就是替換\s。見regex101。與您正則表達式(從中過於複雜之外;)(與*替換爲清楚起見)

的問題是,在結束[\r\n]+需要CR/LF ,如果線路不被空行前(^[\r\n]匹配以換行開頭的行 - 即空行),第一個[\r\n]+也需要CR/LF。

總之 - 它永遠不會匹配兩個連續的非空行。

問候。

+0

那麼在我的正則表達式中我需要什麼變化 – user4756836

+0

正如第一段所述,你應該使用的只是'\ s'。檢查Tushar對你的問題的評論。 – ClasG

+0

但它似乎不符合換行符 – user4756836

0

這應擺脫空的空間:

^(?:\s*)(\w+)$ 

多線和全局修飾符(GM)

請,如果這個解決您的問號問題的解決。