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

时间:2010-12-28 16:43:54

标签: php preg-match

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

Example:
(Class 4) (0-110, 5yo+) 3m1f Good To Firm 18 fences
Return:
5yo+

其他例子是2yo,3yo,2-3yo,4yo +等。

如果你存在,我如何匹配整个单词。我尝试使用\b进行游戏,但如果找到你,则无法让它返回整个5yo+ :(

2 个答案:

答案 0 :(得分:0)

s/.*(\b[0-9-]+yo\+?\b).*/\1/

是您正在寻找的正则表达式

答案 1 :(得分:0)

这对我有用,应该适用于你提供的所有例子:

$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";
}