2016-03-04 70 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)

请,如果这个解决您的问号问题的解决。