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

标签 php regex replace match

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

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

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

我试过:

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

但似乎还是不能匹配多个空格

Regex tester demo

最佳答案

我不太确定你想在这里实现什么。但是,如果您像您在问题中所说的那样,只需 ** 您所要做的就是将 \s 替换为任何内容。参见 regex101 . (为清楚起见,替换为 *)

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

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

问候。

关于php - 正则表达式删除新行和空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35788042/

相关文章:

php - PHP的MySQL查询多个更新行与输入选项

php - fetch_assoc() 查询问题

asp.net - 在 web.sitemap 中使用 URL 通配符?

Java - 如何创建子字符串直到到达非数字字符?

文本区域中的 JavaScript 字符串替换

与正则表达式链接的 PHP URL

php - 如何在 PHP 中替换第一个 HTML <strong></strong> 标签

php - MYSQL 查询 - 排序然后选择相同值的随机数

Java正则表达式用符号替换新行

javascript - Ajax无法加载php json