我创建了一个正则表达式来去除空格、制表符、换行等。
(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+
我的问题是它匹配了一些空格和一些新行,而不是全部。这是为什么?
我试过:
(^[\r\n]*|[\r\n]+)[\s\t+]*[\r\n]+
但似乎还是不能匹配多个空格
最佳答案
我不太确定你想在这里实现什么。但是,如果您像您在问题中所说的那样,只需 ** 您所要做的就是将 \s
替换为任何内容。参见 regex101 . (为清楚起见,替换为 *
)
你的正则表达式的问题是(除了它过于复杂;)结尾的 [\r\n]+
需要一个 CR/LF and,如果该行前面没有空行(^[\r\n]
匹配以换行符开头的行 - 即空行),[\r\n]+
第一个还需要一个 CR/LF。
简而言之——它永远不会匹配两个连续的非空行。
问候。
关于php - 正则表达式删除新行和空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35788042/