PHP preg_match除了逗号之外的一切?

时间:2014-08-17 11:33:05

标签: php regex preg-match

$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);

但它不起作用,因为我认为^,表示除了逗号,但为什么它不起作用?

因为我想用逗号分组它们,但是逗号是符号本身解析器如何避免这种情况?

3 个答案:

答案 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);
除了逗号外,

将为您提供所有内容。

相关问题