gpt4 book ai didi

php - 从字符串的每个新行的开头删除空格

转载 作者:行者123 更新时间:2023-12-04 21:05:19 24 4
gpt4 key购买 nike

我有一个格式如下的字符串(注意每个单词之间和每行开头的随机空格数):

 1 . BritishAirways 15FEB LONDON HONGKONG

    2 . CathayPacific 01MAR HONGKONG SHANGHAI

  3 . Qantas 12MAR SINGAPORE SYDNEY

I want the output to be

1 . BritishAirways 15FEB LONDON HONGKONG2 . CathayPacific 01MAR HONGKONG SHANGHAI 3 . Qantas 12MAR SINGAPORE SYDNEY   

I've got the below code

$flightinfo = preg_replace('/\h+/', ' ', $flightinfo);
$flightinfo = trim($flightinfo);

$flightinfo = str_replace("\r\n\r\n","\r\n",$flightinfo);/* checks and removes double line breaks if they're there.

但是这给出了以下内容,这几乎是正确的,但是它在第 2 行和第 3 行的开头是空白

1 . BritishAirways 15FEB LONDON HONGKONG  2 . CathayPacific 01MAR HONGKONG SHANGHAI  3 . Qantas 12MAR SINGAPORE SYDNEY   

任何人都知道如何删除第 2 行和第 3 行开头的空白

最佳答案

您可以使用单个正则表达式替换来实现您的需要:

$flightinfo = preg_replace('~^\h+|\h+$|(\R){2,}|(\s){2,}~m', '$1$2', $flightinfo);

regex demo .

详情

  • ^\h+ - 行首的任何 1 个或多个水平空格(^ 由于 m 匹配行首修饰符)
  • | - 或
  • \h+$ - 行尾的任何 1 个或多个水平空格($ 由于 m 匹配行尾修饰符)
  • | - 或
  • (\R){2,} - 2 个或多个换行符序列,将最后一个换行符捕获到第 1 组中
  • | - 或
  • (\s){2,} - 2 个或更多空格将最后一个空格捕获到第 2 组中

替换是对第 1 组和第 2 组的替换反向引用。

PHP demo :

$re = '/^\h+|\h+$|(\R){2,}|(\s){2,}/m';
$flightinfo = ' 1 . BritishAirways 15FEB LONDON HONGKONG


2 . CathayPacific 01MAR HONGKONG SHANGHAI



3 . Qantas 12MAR SINGAPORE SYDNEY';
$flightinfo = preg_replace($re, '$1$2', $flightinfo);
echo $flightinfo;

输出:

1 . BritishAirways 15FEB LONDON HONGKONG
2 . CathayPacific 01MAR HONGKONG SHANGHAI
3 . Qantas 12MAR SINGAPORE SYDNEY

关于php - 从字符串的每个新行的开头删除空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45955993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com