【问题标题】:PHP string explode with regular expression? [closed]PHP字符串用正则表达式爆炸? [关闭]
【发布时间】:2013-05-17 13:12:38
【问题描述】:

PHP 字符串与正则表达式一起爆炸 示例数据:

"A" 100000  "M" "C" "J"         "JOHNSON TRENCHING" 238910

预期结果:

array (
  0 => 'A',
  1 => '100000',
  2 => 'M',
  3 => 'C',
  4 => '',
  5 => '',
  6 => 'JOHNSON TRENCHING',
  7 => '238910'
);

【问题讨论】:

  • StackOverflow 不适合回答这个问题。我们不会为您编写代码。您需要自己编写代码,如果您不确定为什么某些事情没有按预期工作,请发布代码并说明您期望它做什么,以及它实际上在做什么,包括所有错误消息。见about StackOverflow
  • 为什么不直接使用带有“\t”分隔符的str_getcsv()
  • 带有“\t”的str_getcsv() 不起作用 预期的结果如前所述。请看这个链接bugs.php.net/bug.php?id=55674
  • J 字母会发生什么?

标签: php regex explode


【解决方案1】:

试试这个

$string = '"A" 100000 "M" "C" "J" "JOHNSON TRENCHING" 238910';
$string = preg_match_all('/(\"[a-zA-Z0-9\s]+\")|[0-9]+/', $string, $matches);

print_r($matches);

【讨论】:

  • "A"[\s]100000[\s]"M"[\s]"C"[\s]"J"[\s]null[\s]null[\s ]"JOHNSON TRENCHING"[\s]238910 我在这里提到 [\s] 的空间。我需要将正则表达式添加到空字符串或空值。
  • @ramesh 你是什么意思你需要为空字符串或空字符串添加正则表达式?我的代码中的正则表达式仅在双引号或不带双引号的数值之间搜索字母数字字符(带空格)。如果你有额外的字符让我知道,我会编辑正则表达式:)
  • 对不起菲尔它是空值。
  • 试试这个正则表达式:preg_match_all('/(\"[a-zA-Z0-9\s]+\")|[0-9]+|[null]+/i', $string, $matches);我有一个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多