2017-04-18 12 views
0

私は正規表現を作成しています。これは私のテストデータセットです:正規表現の結果を絞り込む

<a href="test.html">test1</a> 
<a href="test.pdf">test2</a> 
<a href="test.html">test1</a> 
<a href="test.html">test1</a><a href="testtime.pdf">test2</a> 

私は「PDF」が、次の正規表現を「のhref =」からキャプチャしようとしている:それは孤立している場合

href=.*?\.pdf 

は、右のデータをキャプチャします1行に、それはまた、最後の行から次のようにマッチします:私は、最後の「HREF」から「PDFファイル」にしたい

href="test.html">test1</a><a href="testtime.pdf 

、私は上の最初の 『HREF』をしたくありませんそれと2番目の「hre f "である。これに合うように正規表現を修正することは可能ですか?

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

+0

あなたはそれがPDFだ場合にのみ、最後にリンクされたファイルの名前をしたいですか? – Slime

+0

正規表現用javascript? – aahhaa

+0

regexesを使ってHTMLを解析することは危険に満ちていることに注意してください。その理由の例はhttp://htmlparsing.com/regexes.htmlをご覧ください。 –

答えて

2

属性は引用符で開始すると値がこの引用符を含めることはできませ行います

href="[^"]*?\.pdf 

デモ:https://regex101.com/r/UuRin3/1

P.S.

Don't use Regex to parse HTML

+0

これは私を助けてくれた、ありがとう。 ところで、私はRegexを使ってHTMLを解析していません。私は、9000のHTMLページを持つサイトでリンクされたPDFのインスタンスを見つけようとしています。 – Katori

0

まず、キャプチャグループを使用すると、単語全体を一致させることができますが、一部だけを抽出します。例えば、href=\"(.*\.pdf)\"href="xxxx.pdf"文字列と一致させる必要がありますが、xxxx.pdf部分のみを抽出します。

どのようにこれを行うかは、Regexをフェッチするために使用するテクノロジによって異なります。どういうわけか私はこれがhtmlだとは思わない。

関連する問題