为了账号安全,请及时绑定邮箱和手机立即绑定

匹配 PHP 中多行字符串中每行开头的任何水平空白字符

匹配 PHP 中多行字符串中每行开头的任何水平空白字符

PHP
慕桂英4014372 2021-06-01 09:50:45
我想替换所有新行开头的所有空格。我有两个正则表达式替换:$txt = preg_replace("/^ +/m", '', $txt);$txt = preg_replace("/^[^\S\r\n]+/m", '', $txt);它们中的每一个都匹配不同类型的空白空间。但是,可能有两个空格都存在且顺序不同,因此我想在新行的开头匹配所有空格的出现。我怎样才能做到这一点?注意:第一个正则表达式匹配一个表意空间,\u3000char,它只能检查问题原始正文(所以渲染在这里没有做正确的工作)。第二个正则表达式仅匹配 LF 和 CR 以外的 ASCII 空白字符。这是一个演示,证明第二个正则表达式与第一个正则表达式匹配的内容不匹配。
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

由于您想从需要使用的 Unicode 字符串中删除任何水平空格

$txt = preg_replace("/^\h+/mu", '', $txt);

细节

  • ^-一行的开始(m修饰符^匹配所有行的起始位置,而不仅仅是字符串的起始位置)

  • \h+ - 一个或多个水平空白

  • u 修饰符将确保 Unicode 文本被视为 Unicode 代码点序列,而不仅仅是代码单元,并使模式 Unicode 中的所有正则表达式转义都能识别。


查看完整回答
反对 回复 2021-06-04
  • 1 回答
  • 0 关注
  • 194 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信