0

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

%大卫戴维森%你好,我也可以存储 1000 个数字%另一个链%你好吗!?%

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

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

... ETC

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

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

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

4

1 回答 1

2

您可以使用

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

这会给你:

  • 大卫戴维森
  • 您好,我也可以存储 1000 个号码
  • 另一条链
  • 你好吗!?

    [^%]+

这意味着在正则表达式中,除 "%" 之外的每个字符

于 2013-01-28T14:12:01.367 回答