1

私はアプリを作成していますが、パターン認識コードを使用してサイトの記事の画像 URL を見つけるという問題があります。

問題は、私の方法では、最初の写真が非常に小さいことです。

パターン p = Pattern.compile(" http://planetaris.gr/media/k2/items/cache .*\.jpg"); その先を掴みたいXL画像があります。

リンクの最後にこのようになるパターンを使用したいと思います

パターン p = Pattern.compile("( http://planetaris.gr/media/k2/items/cache.)+ (.*\[_XL]+(.jpg))");

または Pattern p = Pattern.compile(" http://planetaris.gr/media/k2/items/cache .*\_XL.jpg");

これは私があなたの助けを必要とする場所です ここにコードがあります

public void run() {

        //Pattern p = Pattern.compile("http://planetaris.gr/media/k2/items/cache.*\\.jpg");
        //Pattern p = Pattern.compile("http://planetaris.gr/media/k2/items/cache.*\\._XL.jpg");
        Pattern p = Pattern.compile("(http://planetaris.gr/media/k2/items/cache.)+(.*\\[_XL]+(.jpg))");

        try {
                    URL url = new URL(selectedRssItem.getLink());

                    URLConnection urlc = url.openConnection();
                    Log.d("MIMIS_LINK", url.toString());
                    BufferedInputStream buffer = new BufferedInputStream(urlc.getInputStream());

                    builder = new StringBuilder();
                    int byteRead;
                    while ((byteRead = buffer.read()) != -1)
                        builder.append((char) byteRead);

                    buffer.close();

                } catch (MalformedURLException ex) {
                    ex.printStackTrace();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }

                Matcher m = p.matcher(builder.toString());


                if (m.find()) {

                try {
                    bitmap = BitmapFactory.decodeStream((InputStream)new URL(m.group(0)).getContent());
                } catch (MalformedURLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                    Log.d("MIMIS_MATCHER", selectedRssItem.getDescription().toString());
                 };

        handler.sendEmptyMessage(0);

    }
    }.start();
    }

private Handler handler = new Handler() {

    //@SuppressWarnings("null")
    @Override
    public void handleMessage(Message msg) {

        mSpinner.clearAnimation();
        mSpinner.setVisibility(View.GONE);
            //progressDialog.dismiss();
        myimageview.setImageBitmap(bitmap);

        if (bitmap==null){

            myimageview.setImageResource(R.drawable.aris_no_image);

        };
        }       
        };  

サイトにはこのXLのjpgもあるから

これらはすべて、特定のページの .jpg です。

href="/media/k2/items/cache/df95c3d9029788dcdb6f520e9151056c_XL.jpg"

/media/k2/items/cache/df95c3d9029788dcdb6f520e9151056c_L.jpg"

"/images/stories/atnea2.jpg"

/images/stories/diarkeias-bc.jpg"

4

2 に答える 2

0
String url = "http://planetaris.gr/media/k2/items/cache.sample_XL.jpg";
String regex = "[0-9a-zA-Z\\-\\._/:]*[XL]\\.jpg$";
System.out.println(url.matches(regex)); //this will be print true if case matches files ends with *XL.jpg and *X.jpg and *L.jpg.


「.jpg」で終わる文字列のみを確認したい場合は、正規表現を使用します


文字列正規表現 = "[\\x20-\\x7E]*\\.jpg$";


*XL.jpg で終わるファイルの正確な一致を見つけたい場合


文字列 url = " http://planetaris.gr/media/k2/items/cache.sample_XL.jpg ";
文字列正規表現 = "[0-9a-zA-Z\\-\\._/:]*XL\\.jpg$";
System.out.println(url.matches(正規表現)); //大文字と小文字が一致する場合、true が出力されます


URL 文字列にスペースまたは特殊文字と 0-9a-zA-Z 文字が含まれている場合は、正規表現を使用してください (*XL.jpg で終わるすべての文字列に true が返されます
) 。 .gr/media/k2/items %!@#$%/cache.sample_ssXL.jpg";
文字列正規表現 = "[\\x20-\\x7E]*XL\\.jpg$";

于 2013-02-13T11:35:27.850 に答える
0

この正規表現:/(media|images)/[^\.]*\.jpg

すべてのサンプルに一致します:

href="/media/k2/items/cache/df95c3d9029788dcdb6f520e9151056c_XL.jpg" /media/k2/items/cache/df95c3d9029788dcdb6f520e9151056c_L.jpg" "/images/stories/atnea2.jpg" /images/stories/diarkeias-bc.jpg"

于 2013-02-13T11:39:08.453 に答える