例如我有 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"
?
谢谢
例如我有 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"
?
谢谢
你可以使用
- (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"];
您应该使用正则表达式并尝试使用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");
}];
只需将您的html放在字符串中并使用for循环创建一个函数,并在出现 宽度和高度时计算其长度和位置,然后用新数据替换它......我这样做了......
在 img 标签内添加新的 width 和 height 属性
NSError *regexError = nil;
NSRegularExpressionOptions options = 0;
NSString *pattern = @"(img)";
NSRegularExpression *expression = [NSRegularExpression regularExpressionWithPattern:pattern options:options error:®exError];
wihoutWidth = [expression stringByReplacingMatchesInString:wihoutWidth
options:0
range:NSMakeRange(0,wihoutWidth.length)
withTemplate:@"$1 width=293 height=150"];
return wihoutWidth;
如何使用此代码替换宽度?我还想在 $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"];