如何用PHP提取以逗号分隔的字符串?

Jor*_*sen 0 php regex recursion pcre preg-match

我需要提取一个以逗号或逗号和空格分隔的字符串。例子:

<?php
    //regexp
    $regexp = "/(select\s+(?<name>[a-z0-9]+)\s+(?<values>[^\d]+[a-z0-9]+\s*(\s*,|\s*$)))/";
    //text
    $text = "select this string1,string_2,string_3 ,string_4, string5,string_6";
    //prepare
    $match = array();
    preg_match( $regexp , $text , $match );
    //print
    var_dump( $match);
?>
Run Code Online (Sandbox Code Playgroud)

我创建了这个正则表达式:

(?<values>[^\d]+[a-z0-9]+\s*(\s*,|\s*$))
Run Code Online (Sandbox Code Playgroud)

但这并不完美。

谢谢!

Ibu*_*Ibu 5

我会为此使用preg_split :

$text = "select this string1,string_2,string_3 ,string_4, string5,string_6";
$stringArray = preg_split("/,\s*/",$text);
Run Code Online (Sandbox Code Playgroud)

但在每个逗号之后进行分割然后修剪结果会更容易:

$stringArray = explode(",",$text);
Run Code Online (Sandbox Code Playgroud)