使用正则表达式在字符串中获取两个匹配项

时间:2017-07-27 09:41:38

标签: php regex

我的字符串:

fields[name_1]

我想使用正则表达式获取fieldsname_1

我知道preg_match_all(),但我不是正则表达的朋友。

2 个答案:

答案 0 :(得分:3)

这可以用于直接匹配:

$string = 'fields[name_1]';

preg_match('/(.+)\[(.+)\]/', $string, $matches);

print_r($matches);

你得到:

Array
(
    [0] => fields[name_1]
    [1] => fields
    [2] => name_1
)

因此,您需要$matches[1]$matches[2]

我还不清楚你确切的需要!

以下是正则表达式的解释:

  1. https://regex101.com/r/PcJzQL/3
  2. http://www.phpliveregex.com/
  3. https://www.functions-online.com/preg_match.html

答案 1 :(得分:2)

仅此处就是SO的例子。简单的搜索就会向您展示您的需求。无论如何,为了让你前进:

<?php
$subject = 'fields[name_1]';
preg_match('/^(.+)\[(.+)]$/', $subject, $tokens);
print_r($tokens);

显然的输出是:

Array
(
    [0] => fields[name_1]
    [1] => fields
    [2] => name_1
)