不要preg_match_all这里
$regex = '/(?J)I wanna match pattern (?P<number>1) which is very different from pattern 2|(?P<number>2), again nothing to do with pattern 1 here/';
结果使用带有preg_match
:
array(3) {
[0]=>
string(62) "I wanna match pattern 1 which is very different from pattern 2"
["number"]=>
string(1) "1"
[1]=>
string(1) "1"
}
完全固定的正则表达式'nothing similar' was not found in the orignal regex
:
$text1 = 'I wanna match pattern 1 which is very different from pattern 2';
$text2 = 'I wanna match pattern 2, again nothing similar with pattern 1 here';
$regex = '/(?J)(I wanna match pattern (?P<number>1) which is very different from pattern 2|I wanna match pattern (?P<number>2), again nothing similar with pattern 1 here)/';
echo "Pattern 1\n";
preg_match($regex, $text1, $matches);
var_dump($matches);
echo "\n\nPattern 2\n";
preg_match($regex, $text2, $matches);
var_dump($matches);
请您通过提供一些简单的输入澄清你的问题和他们的预期产出?据我所知,'preg_match_all('/ \ d + /',$ input,$ out)'或'preg_split('/ [^ \ d] + /',$ input,null,PREG_SPLIT_NO_EMPTY)'会做工作。让我们继续解决您的问题,以便将来的SO读者可以从您的问题中受益。 – mickmackusa