0

私はこの文字列を持っています:<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ですか?

4

2 に答える 2

3

次のコードは、NSRegularExpressionクラスを使用して、指定した形式で提供された divs HTML マークアップの width スタイル属性を置き換えます。

// 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]];
}
于 2013-03-30T21:18:40.837 に答える
1

正規表現を使用します。string.replace(/width:\s*\d+px/, 'width: 275px')

275px編集:考え直して、これがはるかに大きな文字列の一部にすぎない場合、おそらくすべての幅を(または)に置き換えたくないでしょう260px。それでも正規表現を使用する必要がありますが、これが含まれているコンテキストを確認せず、何を行い、何を置き換えたくないのかを知らずに、何を探しているのか正確にはわかりません。

于 2013-03-30T18:34:45.807 に答える