2009-06-15 6 views
1

PHPで正規表現を書こうとしています。このコードから、私は 'bar'にマッチしたいと思います。タグの本文に引用符で囲まれたテキストを抽出するPHP正規表現

<data info="foo"> 
    "bar"|tr 
</data> 

この2つの正規表現を試してみましたが、成功しませんでした。 'foo」>「bar」と一致します。

$regex = '/"(.*?)"\|tr/s'; 
$regex = '/"[^"]+(.*?)"\|tr/s'; 

誰でも手伝っていただけますか?

答えて

3

あなたはPHPの文字列にバックスラッシュをエスケープする必要が括弧内の任意の単語文字と一致する必要があります:私は、引用符の内容を取得するためのキャプチャグループを追加

$regex = '/"([^"]*)"\\|tr/s'; 

いるあなたを

XMLに正規表現を適用するように見えるので、XMLと正規表現がうまくいっていないことを警告したいだけです。 RegexはDOMとの組み合わせでのみ推奨されます。

+0

ありがとうございました。できます。 –

+0

あなたは大歓迎です。 – Tomalak

0
\"\w+\" 

+0

私は "bar foobar" | trにもマッチし、1つの単語ではありません。ご回答有難うございます。 –

0

この試してみてください:あなただけの文字と数字を一致させたい場合は、あなたが行うことができます

$regex = '/"([^">]+)"\|tr/s' 

を:

$regex = '/"([\w\d]+)"\|tr/s' 
+0

ありがとう、それはあまりにも動作します... –

0
$regex = '/"(.+?)"(?=\|tr)/' 

(引用符を含む)"bar"に合わせて、あなたが持っているだろう$ 1の中のbar文字列(引用符なし)。 用途look-ahead

+0

ありがとう... –

関連する問題