2011-09-13 22 views
-3

preg_matchedにする必要のあるテキストは次のとおりです。正規表現を使用してコンテンツを取得する正規表現

/* * product 2: * catalogServiceType = 2 * catalogCacheType = 1 * catalog2RemoteCacheActive = false */ var objProduct881705 = new ProductStyle("2","881705","","4149367","247",false,false,false,false,'','',"35401",false,'$79.50',true,false,false,false,0,false,true,false,true,99,5,"First content that needs to be matched",'Color',"","Machine.","","false","false","false",0,0,"C1","1","",true);obj={'S':'http://domainname.com/mini/image.jpg', 'L':'http://domainname.com/main/image.jpg'}; 

私は上記のテキストから、次のことをつかむことができるようにしたいと思います:あなたは、私がこれを行うことができます提案するにはどうすればよい

1. First content that needs to be matched 
2. http://domainname.com/main/image.jpg 

+1

これは明らかではありません。文字列で上記のコード(テキストとして指定したコード)を持っていますか?あなたは何を一致させる必要がありますか? –

+0

上記の「コード」ビューに変換されたものが、文字列形式で私に返されたテキストでした。文字列から「最初に一致する必要のあるコンテンツ」と「http://domainname.com/main/image.jpg」というテキストを取得する必要があります。 –

+0

文字列は常に「一致する必要のある最初のコンテンツ」ですか?そうでない場合は、テキストを抽出する規則を正確に指定します。それはいつも 'new ProductStyle()'の25番目の引数です。待つ! 「最初に一致させる必要があるコンテンツ」は、指定した文字列には存在しません。代わりに、それは: "\"一致する必要のある最初のコンテンツ\ ""です。 " –

答えて

0

を、私はそれを解決する方法である:

preg_match('/new ProductStyle\(([^\)]+)\)/', $html, $matches); 
$jsonValues = '[' . $matches[1] . ']'; 
$jsonValues = preg_replace_callback("/(?<=,)'(.*?)'(?=,)/", create_function(
     '$matches', 
     'return \'"\' . addslashes(strip_tags($matches[1])) . \'"\';' 
    ), $jsonValues); 
$values = json_decode($jsonValues); 
0

ここで正規表現の初心者は、それで何か得た:ここ

/\((.+?,){25}\"(.+?)\".+?'L':'(.+?)'/ 
関連する問題