繁体   English   中英

使用 PHP 正则表达式从字符串中的数字中删除换行符

[英]Remove newline character from a digit in the string using PHP regular expression

如何使用 PHP 正则表达式从字符串中删除每个数字前面的换行符?

例子:

$message = "
My Number is \n
0\n
7\n
8\n
9\n
Come Home\n
"

变成:

$message = "
My number is\n
0789\n
Come Home\n
"

这就是我所拥有的,但它删除了所有内容

$message = trim(preg_replace('\d+\s+', '', $message),'\n');

您可以使用此 php 代码:

$message = preg_replace('/(?<=\d)\R+(?=\d)/', '', $message);

如果它后面和前面有一个数字,这将匹配任何换行符的 1+。

正则表达式演示

另一种选择可能是:

\d\K\R+(?=\d)

解释

  • \d匹配单个数字
  • \K忘记到目前为止匹配的内容
  • \R+匹配 1+ unicode 换行序列
  • (?=\d)正向前瞻,直接在右边断言一个数字

正则表达式演示

$message = preg_replace('/\d\K\R+(?=\d)/', '', $message);

请参阅PHP 演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM