2

例如我有 html 字符串:

<p>
    <img mce_src="http://example.com/apple.png" src="http://example.com/apple.png" width="512" height="512" style="">
    <br mce_bogus="1">
</p>

如何更改此属性:width="512" height="512"例如:width="123" height="123"

谢谢

4

5 回答 5

3

你可以使用

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target 
                                        withString:(NSString *)replacement

你的例子中的 htmlhtmlString

htmlString = [htmlString stringByReplacingOccurrencesOfString:@"width=\"512\""
                                     withString:@"width=\"123\""];

编辑:

使用正则表达式替换(未测试):

NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(.*width=\").*?(\".*?height=\").*?(\".*)"
                                                                       options:NSRegularExpressionCaseInsensitive
                                                                         error:&error];

NSString *modifiedString = [regex stringByReplacingMatchesInString:htmlString
                                                           options:0
                                                             range:NSMakeRange(0, [htmlString length])
                                                      withTemplate:@"$1<insert width here>$2<insert height here>$3"];

参考: NSRegularExpression

于 2012-08-14T13:03:34.483 回答
2

您应该使用正则表达式并尝试使用RegexKitLite库。

NSString *regex = @"(=\"[0-9]+\")";

NSString *replaced = [htmlString stringByReplacingOccurrencesOfRegex:regex usingBlock:^NSString *(NSInteger captureCount, NSString * const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop) {
  return(@"123");
}];
于 2012-08-14T13:34:29.007 回答
0

只需将您的html放在字符串中并使用for循环创建一个函数,并在出现 宽度高度时计算其长度和位置,然后用新数据替换它......我这样做了......

于 2012-08-14T13:23:58.010 回答
0

在 img 标签内添加新的 width 和 height 属性

NSError *regexError = nil;
    NSRegularExpressionOptions options = 0;

    NSString *pattern = @"(img)";
    NSRegularExpression *expression = [NSRegularExpression regularExpressionWithPattern:pattern options:options error:&regexError];

    wihoutWidth = [expression stringByReplacingMatchesInString:wihoutWidth
                                                       options:0
                                                         range:NSMakeRange(0,wihoutWidth.length)
                                                  withTemplate:@"$1 width=293 height=150"];
    return wihoutWidth;
于 2014-01-05T18:40:14.537 回答
0

如何使用此代码替换宽度?我还想在 $1 中插入一个字符串或一个数字

NSError *error = NULL; NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(. width=\"). ?(\". ?height=\"). ?(\".*)" 选项:NSRegularExpressionCaseInsensitive 错误:&error];

NSString *modifiedString = [regex stringByReplacingMatchesInString:htmlString options:0 range:NSMakeRange(0, [htmlString length]) withTemplate:@"$1$2$3"];

于 2016-11-30T00:24:11.733 回答