PHP正则表达式:根据节的一部分匹配字符串的节

PHP正则表达式:根据节的一部分匹配字符串的节,php,preg-match,Php,Preg Match,我试图从字符串中提取年龄限制: Example: (Class 4) (0-110, 5yo+) 3m1f Good To Firm 18 fences Return: 5yo+ 其他示例包括2yo、3yo、2-3yo、4yo+等 如果yo存在,我如何匹配整个单词。我尝试玩了\b,但如果找到了yo,则无法让它返回整个5yo+:( 您似乎正在寻找的正则表达式是否适用于我,并且适用于您给出的所有示例: $str = '(Class 4) (0-110, 5yo+) 3m1f Good To Fir

我试图从字符串中提取年龄限制:

Example:
(Class 4) (0-110, 5yo+) 3m1f Good To Firm 18 fences
Return:
5yo+
其他示例包括2yo、3yo、2-3yo、4yo+等

如果yo存在,我如何匹配整个单词。我尝试玩了
\b
,但如果找到了yo,则无法让它返回整个
5yo+
:(


您似乎正在寻找的正则表达式是否适用于我,并且适用于您给出的所有示例:

$str = '(Class 4) (0-110, 5yo+) 3m1f Good To Firm 18 fences';
if (preg_match('/[0-9-]+yo\\+?/', $str, $matches)) {
    echo "Matched: $matches[0]\n";
}

哦,我想表现得有点太聪明了:)非常感谢。这个正则表达式将与文本“2-3yo”不匹配,并将包含它的字符串替换为“3yo”。@cdhowie你是对的,很抱歉忽略了这个选项,实际上我应该在[0-9]部分添加-
$str = '(Class 4) (0-110, 5yo+) 3m1f Good To Firm 18 fences';
if (preg_match('/[0-9-]+yo\\+?/', $str, $matches)) {
    echo "Matched: $matches[0]\n";
}