1
s='<img src="http://25.media.tumblr.com/xxxxx/tumblr_xxx_1280.jpg">'
p=/(?=<img src=")http:\/\/\d*\.media\.tumblr\.com\/\w*\/?tumblr_\w*_\d{3,4}\.\w{3,3}(?=")/g
s.match(p) # return null

ただし、次のように機能します。

p=/(<img src=")http:\/\/\d*\.media\.tumblr\.com\/\w*\/?tumblr_\w*_\d{3,4}\.\w{3,3}(?=")/g
4

2 に答える 2

2

?=:前向きな先読み。結果に含めずに、メインの式ののグループに一致します。

URLのみを抽出しようとしている場合は、メインの式の前に何かを一致させようとしているため、前向きな後ろ姿を探しています。

p=/(?<=img src=....
     ^ positive look-behind

編集:

(コメントが示すように)JavaScriptではサポートされていないため、トリックに頼る必要があります

ただし、URLを抽出しようとしている場合は、URLを2つのステップに分割して、一致するもの全体を取得してから、その<img src=...部分を削除する方が簡単な場合があります。

于 2013-03-26T15:30:14.690 に答える
0

最初の正規表現は、それに続くパターンと矛盾するゼロ幅の先読みを使用しているため、一致できません。

正規表現は一致できず"<img src="、文字列内の同じ場所でも一致し"http://25"ます。

于 2013-03-26T15:31:05.610 に答える