PHP 正则表达式空格忽略引号


php regex white space ignore quotes

使用 php 和正则表达式,我需要将一串数据分成具有以下要求的部分。

  1. 将其拆分为空白
  2. 忽略引号内的空格。

例如:

  1. $string='tid:1212121'; - 应该只返回一个带有"tid:1212121"的数组

  2. $string='tid:1211 主题:ted title:"This Title"'; 应该返回一个数组3 件 tid:1211,主题:ted 和标题:"这个标题"。

我环顾四周,但我的个人正则表达式功能很糟糕。此外,我无法控制输入,因此引号不会被转义。字符串将如上面引用或更长,例如 $string='tid:1211 主题:ted 标题:"此标题" lid:332 fid:"另一段文字"';

谢谢!

如果每个引号前面都有非空格字符,这可以帮助您:

preg_match_all('/([^ ]*("[^"]*")['s])|([^ ]+['s])/', $string, $matches);

您可以在以下位置查看操作:phpliveregex并选择preg_match_all