0

画像付きのテキストを表示する UIWebView を取得しようとしています。テキストの内部にはいくつかのリンクが含まれているため、たとえば次のようになります。

「私はかつて魚を飼っていましたhttp://mysite.com/images/fish.jpg。小さな犬と雄鶏も飼っていましたhttp://mysite.com/images/dog.jpg

次のようになります。

私はかつて魚を飼っていた

----------------------------------
|                                 |
|Fish Image From                  |
|http://mysite.com/images/fish.jpg|
|                                 |
|                                 |
----------------------------------

私は小さな犬とオンドリも飼っていました

----------------------------------
|                                |
|dog Image From                  |
|http://mysite.com/images/dog.jpg|
|                                |
|                                |
----------------------------------
--------------------------------------
|                                    |
|rooster Image From                  |
|http://mysite.com/images/rooster.jpg|
|                                    |
|                                    |
--------------------------------------



    NSMutableString *mutableString = [[NSMutableString alloc] initWithFormat:@"<html><head></head><body>%@</body>",string];

    NSString *pattern = @"http://.+\\.(?:jpg|jpeg|png|gif|bmp)";
    NSString *replacement = @"<br /><img style=\"width:100%;height:auto;\" src=\"$1\"/><br />";
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern           
                          options:0 error:NULL];
    [regex replaceMatchesInString:mutableString
                          options:0
                          range:NSMakeRange(0, mutableString.length)
                          withTemplate:replacement];

しかし、結果を確認すると、画像は次のよう<br /><img style="width:100%;height:auto;" src=""/><br />になり、リンクはなくなりました。

画像があるべき場所:

文章...
<br /><img style="width:100%;height:auto;" src="http://mysite.com/images/fish.jpg"/><br />

文章...

<br /><img style="width:100%;height:auto;" src="http://mysite.com/images/dog.jpg"/><br />

<br /><img style="width:100%;height:auto;" src="http://mysite.com/images/rooster.jpg"/><br />

4

1 に答える 1

1

$1適切に機能させるには、一致したパターンをグループ内、つまり 内に配置する必要があると思います()。次のパターンを使用してはどうでしょうか。

(http://.+\\.(?:jpg|jpeg|png|gif|bmp))

また、パターンから.+部分がひも全体を食べます。貪欲さを軽減するには、元のパターンの効果を維持するために置き換える.+?か、より正確にすることができます。\w.*?+

于 2013-01-31T22:47:05.490 に答える