2010-12-28 12 views
0

の一部に基づいて、文字列の一致セクションIは、文字列から年齢制限を抽出しようとしています:PHP正規表現:セクション

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

他の例としては、2yo、3yo、2-3yo、4yoの+など

だろう

もし存在すれば、単語全体をどのように一致させるのですか?私は\bで遊んでみましたが、ヨーヨーが発見された場合、それは全体5yo+を返すために取得することはできません:(

答えて

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"; 
} 
0
s/.*(\b[0-9-]+yo\+?\b).*/\1/ 

あなたはこれが私のために働いた

+0

ああ、私もちょっと賢明にしようとしていました:)とてもありがとうございました。 –

+0

この正規表現は "2-3yo"という文字列と一致せず、その文字列を "3yo"に置き換えます。 – cdhowie

+0

@cdhowieあなたはこのオプションを見落としてしまいましたが、実際には[0-9]の部分に - を追加してください – Robokop