获取特定组的正则表达式

时间:2013-01-28 14:07:38

标签: php regex

我需要一个正则表达式语法,用于获取用'%'字符分隔的字符串中的特定组。我有这个字符串作为例子:

%David davidson%你好我可以存储1000个数字%anotherchain%你好吗?%{/ p>

我想在不同的PHP变量中存储像这样的匹配

$var1 = david davidson;
$var2 = Hello I can store numbers;

...等

但我不知道如何获得一组特定的字符(每个示例获得的第二个匹配不以符号或%符号开头)

我尝试使用此代码%.*?(%)但它只返回第一个和第三个匹配但我实际上想要选择特定的组

我在谷歌和这里搜索过但我找不到与我需要的东西相符的答案,可能是因为我不知道我需要搜索的关键字以获得一个好的答案

1 个答案:

答案 0 :(得分:2)

您可以使用

preg_match_all('/[^%]+/sim', $subject, $result, PREG_PATTERN_ORDER);
$result = $result[0];
print_r($result);

这会给你:

  • David davidson
  • 您好我也可以存储1000个号码
  • anotherchain
  • 你好!!

    [^%] +

这意味着在正则表达式中,除了“%”

之外的每个字符