正则表达式匹配包含'a'或'an'的消息

Eva*_*van 0 php regex

好的,这是输入消息:

你有一个耳朵
你有一个冰块
你有一只狗
你有一个苹果
你有一块石头

我想要得到这样的输出:

耳
冰块
狗
苹果
岩

我怎么能做到这一点?

这是我目前的代码:

<?php
$str = $_POST["txtarea"];

preg_match_all('/You have (a|an) (.*)/', $str, $matches);
array_shift($matches);
foreach($matches[0] as $child) 
{
    echo $child;
}

?>
Run Code Online (Sandbox Code Playgroud)

整个(a | an)部分不起作用.

zer*_*kms 8

你的比赛是在$matches[2]元素中.

0- 是整个匹配的字符串
1- 第一组(a|an在您的情况下)
2- 所需的组

要排除组,请使用?:提示,例如(?:a|an)

PS:对于"a或an"匹配,它实际上可以使用an?不需要括号