2016-05-23 7 views
0

次の正規表現をデコードしようとしています。何らかの理由で、私のオンラインデコーダでは動作しません。誰でも次のものを解読するのを助けることができます:正規表現をデコードする

Regex r = new Regex("src=\"(?<src>[^\"]+)\"") 

ありがとうございました。

+0

なぜそれは言うのですか? @ h2000000以下の回答を –

+0

に与えました。編集がリロードされませんでした。私の悪い – rock321987

答えて

4

あなたが最後に引用記号を逃しているようだが、のはそれを無視してみましょう。

剖検:

src=\"(?<src>[^\"]+)\" 
  • src=から文字列リテラルsrc=
  • \" - リテラル引用符(文字列が終了していないことを確認するためにエスケープ)
  • (?<src>[^\"]+)
    • src名前キャプチャグループ(?<src>)マッチング:
    • [^\"]+ - リテラル - "文字ないこと任意の文字は、無限回(+
  • \"に1を一致しました引用符(文字列が終了しないようにエスケープします)

Debuggex人間の言葉で

Regular expression visualization

文字列<img src="picture.png" />でこれはpicture.pngを含むsrcという名前の名前のキャプチャグループを作成します。

正規表現の限界:あなたのイメージは、単一引用符を使用して作成された場合

<img src='picture.png' />)これは正しく動作しません。

(引用の種類に応じて、 src1または src2のいずれかで)の両方に一致します
src=(\"(?<src1>[^\"]+)\"|\'(?<src2>[^\']+)\') 
         ^
    DOUBLE QUOTES  OR  SINGLE QUOTES 

:その場合は、あなたのようなものを使用することができます。

Regular expression visualization

+0

ありがとうございます。行方不明を追加しました " –

+0

正規表現を文字列形式で無視しようとすると、なぜdouble qutationをエスケープするのですか?これは正規表現エンジンに渡されるものではありません。 – sln

0

おそらく、パターンが正しくないためですか?私はこれがあなたが望んだと思う:

Regex r = new Regex("src=\"([^\"]+)\"") 

これはsrc="image.jpeg"image.jpegをキャプチャします。

Regex 101

+0

あなたはおそらくここで一重引用符を確認したいでしょう –

関連する問題