$regex = "/(.+),(.+);/";
$input = "somestring, 234, sometring5";
preg_match_all($regex, $input, $matches, PREG_SET_ORDER);
我试图这样做:
$regex = "/(.^,+),(.^,+);/";
$input = "somestring, 234, sometring5";
preg_match_all($regex, $input, $matches, PREG_SET_ORDER);
但它不起作用,因为我认为^,
表示除了逗号,但为什么它不起作用?
因为我想用逗号分组它们,但是逗号是符号本身解析器如何避免这种情况?
答案 0 :(得分:1)
这是a modified version of your RegEx,每个修饰符都有一些解释。
对于那些不愿意访问该链接的人:
用于匹配句子中所有单词的RegEx是/([a-zA-Z0-9]*)/g
[a-zA-Z0-9]
表示匹配所有非符号字符(a-z,A-Z和0-9)*
表示尽可能多地重复匹配g
修饰符(末尾的/g
)表示在字符串中尽可能多地匹配;不要只停留在第一个。答案 1 :(得分:1)
您可以在,
上拆分字符串并修剪结果:
$matches = array_map('trim', explode(',', $input));
答案 2 :(得分:0)
$regex = "/([^,])/g";
$input = "somestring, 234, sometring5";
preg_match_all($regex, $input, $matches, PREG_SET_ORDER);
除了逗号外,将为您提供所有内容。