正则表达式删除新行和空格

use*_*836 5 php regex replace match

我创建了一个正则表达式来去除空格、制表符、新行等。

(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+
Run Code Online (Sandbox Code Playgroud)

我的问题是它匹配一些空格和一些新行,而不是全部。这是为什么?

我试过了:

(^[\r\n]*|[\r\n]+)[\s\t+]*[\r\n]+
Run Code Online (Sandbox Code Playgroud)

但似乎仍然不匹配多个空格

正则表达式测试器演示

Sam*_*han 1

我不太确定你想在这里实现什么目标。但是,如果您,正如您在问题中所说,只是 ** 您所要做的就是\s什么都不替换。请参阅regex101*(为了清楚起见,替换为)

您的正则表达式的问题是(除了它过于复杂之外;)结尾[\r\n]+需要 CR/LF,如果该行前面没有空行(^[\r\n]匹配以换行符开头的行 - 即空行) ,[\r\n]+第一个也需要 CR/LF。

简而言之 - 它永远不会匹配两个连续的非空行。

问候。