【发布时间】:2012-12-16 11:28:44
【问题描述】:
我知道你们是正则表达式大师,我在使用 php preg_match_all 的正则表达式模式时遇到了困难,
$var = "1 CARRYL CLOYDE GLADWIN 93 SOESDYKE LINDEN FARMER 129790657
1 fdfdfd CLOYDE GLADWIN 93 SOESDYKE LINDEN FARMER 129790657
1 dfdfdf CLOYDE GLADWIN 93 SOESDYKE LINDEN FARMER 129790657
1 gfgfgg CLOYDE dfdfdfd 93 SOESDYKE LINDEN FARMER 129790657
";
$regex = "#(\d+) [A-Z]+ [A-Z]+ [A-Z]+ [0-9-A-Z]+ [A-Z]+ (\d+)#";
preg_match_all($regex,$var,$array);
print_r($array);
?>
当我执行这个脚本时,这是我得到的结果。
Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) )
我正在寻找的结果如下所示,不幸的是,我认为我的表达中缺少某些内容,请您帮忙。
Array
(
[0] => Array
(
[0] => 1 CARRYL CLOYDE GLADWIN 93 SOESDYKE LINDEN FARMER 129790657
[1] => 1 fdfdfd CLOYDE GLADWIN 93 SOESDYKE LINDEN FARMER 129790657
[2] => 1 dfdfdf CLOYDE GLADWIN 93 SOESDYKE LINDEN FARMER 129790657
[2] => 1 gfgfgg CLOYDE GLADWIN 93 SOESDYKE LINDEN FARMER 129790657
)
)
我有一个包含 $var 中定义的完整列表的文档,我想要正则表达式模式来扫描文档以查找此数据,我遇到了很大的困难,请您帮忙谢谢您的时间和努力。
【问题讨论】:
-
您只匹配单个空格。您需要在每个组之间使用
\s+以获得多个空格。但无论如何,这看起来像 CSV 数据和正则表达式可能不是要走的路。它们之间的空格数是否始终相同?最后一组是否属于93 SOESDYKE LINDEN? -
是的,它们之间的空格数总是相同的,是的 93 SOESDYKE LINDEN 属于一起
-
@AntonioLondon,每个值之间的空格数是多少。你说它们是一样的,但你的例子有不同的空间长度。
标签: php regex preg-match-all