我创建了一个正则表达式来删除空格,制表符,换行符等。
(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+
我的问题是它匹配一些空格和一些新行,而不是所有行。那是为什么?
我试过了:
(^[\r\n]*|[\r\n]+)[\s\t+]*[\r\n]+
但似乎仍然不匹配多个空格
答案 0 :(得分:0)
我不太清楚你想在这里实现什么。但是,如果您在问题中说明,那么您只需要做任何事情就是替换\s
。见regex101。 (为了清楚起见,请替换为*
)
你的正则表达式的问题是(除了它过于复杂;)结尾[\r\n]+
需要CR / LF 和,如果该行前面没有空line(^[\r\n]
匹配以换行符开头的行 - 即空行),第一行中的[\r\n]+
也需要CR / LF。
简而言之 - 它永远不会匹配两个连续的非空行。
问候。
答案 1 :(得分:0)
这将摆脱空白区域:
^(?:\s*)(\w+)$
使用多行和全局修饰符(gm)
如果这解决了您的问题,请将问题标记为已解决。
答案 2 :(得分:0)
$input_lines = <<<EOD
test
aeee
eeeee
EOD;
$output = preg_replace('/(\s)*/', '$1', $input_lines);
var_dump($output);
结果:
string(16) "
test
aeee
eeeee"
如果我想删除所有换行符
$output = preg_replace('/(\s)*/', '', $input_lines);
var_dump($output);
结果:
string(13) "testaeeeeeeee"
答案 3 :(得分:0)
尝试关注
.replace(/\s+/g, "")
.replace(/\n+/g, "")
添加 global 将替换所有位置。