我有这个字符串:<div id="attachment_16696" class="wp-caption alignnone" style="width: 460px">
我希望:<div id="attachment_16696" class="wp-caption alignnone" style="width: 275px">
我的工作差不多。唯一的问题是,当它的例如1000px
时,因为它不匹配它不起作用,如果它不是460px
我想如何处理我想要它260px
?
答案 0 :(得分:3)
以您指定的格式提供时,以下代码使用NSRegularExpression类替换divs HTML标记的width style属性:
// Takes Div markup in the following formats:
// <div id="something" class="something" style="width: Xpx">
// <div id="something" class="something" width="X">
// And replaces X with desired value.
- (NSString *)setDivMarkup:(NSString *)markup width:(NSInteger)width
{
NSString *regexToReplaceWidth = @"width(:|=)(\")?\\s*\\d+\\s*(px)?";
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regexToReplaceWidth
options:NSRegularExpressionCaseInsensitive
error:&error];
return [regex stringByReplacingMatchesInString:markup
options:0
range:NSMakeRange(0, markup.length)
withTemplate:[NSString stringWithFormat:@"width$1$2%d$3", width]];
}
答案 1 :(得分:1)
使用正则表达式:string.replace(/width:\s*\d+px/, 'width: 275px')
编辑:
再想一想,如果这只是更大字符串的一部分,您可能不希望用275px
(或260px
)替换所有宽度。你仍然应该使用一个正则表达式,但是如果没有看到它所处的上下文,并且知道你做了什么和不想要替换它,我不确定它究竟会找到什么。