0

さまざまなオンライン正規表現テスターを試しても、正規表現に問題がある完全に新しいプログラマーです。私はEclipseでAndroidプロジェクトに取り組んでおり、openx広告サーバーにテキスト広告を照会し、これを返します:

var OX_abced445 = '';
OX_abced445 += "<"+"a href=\'http://the.server.url/openx/www/delivery/ck.php?oaparams=2__bannerid=29__zoneid=3__cb=e3efa8b703__oadest=http%3A%2F%2Fsomesite.com\'target=\'_blank\'>This is some sample text to test with!<"+"/a><"+"div id=\'beacon_e3efa8b703\'style=\'position: absolute; left: 0px; top: 0px; visibility:hidden;\'><"+"img src=\'http://the.server.url/openx/www/delivery/lg.php?bannerid=29&amp;campaignid=23&amp;zoneid=3&amp;loc=1&amp;cb=e3efa8b703\' width=\'0\'height=\'0\' alt=\'\' style=\'width: 0px; height: 0px;\' /><"+"/div>\n";
document.write(OX_abced445);

最初の href url を抽出する必要がありますが、img src url を抽出する必要はありませhref=\''。また、ターゲット テキストを抽出する必要があります。と の間にThis is some sample text to test with!カプセル化されます。URL の抽出などを扱う正規表現をたくさん見つけましたが、この特定のケースで Eclipse で動作させるのに苦労しました。任意の支援をいただければ幸いです。_blank\'><"+"/a>

4

1 に答える 1

0

正規表現を使用して HTML を生成する JavaScript を解析しようとするのは、非常に悪い考えです。代わりに、Java の場合はJSoupValidator.nu 、Ruby の場合はNokogiriなどを使用してください。正規表現を使用する必要がある場合:

Plain regex:
^.*? href=\\'([^']+)\'[^>]*>([^<]*)<

or, in Java:

Pattern p = Pattern.compile("^.*? href=\\\\'([^']+)\\'[^>]*>([^<]*)<", 
                            Pattern.MULTILINE);
Matcher m = p.matcher(hideousString);
m.find();
// Now m.group(1) is the URL and m.group(2) is the text

キャプチャ グループ 1 で URL をキャプチャhrefし、キャプチャ グループ 2 でテキストをキャプチャしますが、サイトが応答形式を変更するとすぐに壊れます。

于 2013-05-27T21:29:13.250 に答える