1

たとえば、文字列があります@"You've earned Commentator and 4 ##other$$ badges"。と@"other"で区切られた部分文字列を取得したい。私はこのようなNSRegularExpressionを作成しました:##$$

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"##(.*)$$" options:NSRegularExpressionCaseInsensitive error:nil];

これは完全に無視し$$て、で始まるものを返します##。私は何が間違っているのですか?ありがとう。

4

2 に答える 2

1

これは、「$」が行の終わりを表す特殊文字だからです。\$\$それをエスケープして、パーサーにキャラクターが欲しいと伝えてみてください。

于 2011-07-06T02:10:10.013 に答える
1

文字列のバッシングは非常に単純なので、この状況では正規表現を使用しません。式をコンパイルするオーバーヘッドは必要ありません。

NSString *source = @"You've earned Commentator and 4 ##other$$ badges";
NSRange firstDelimiterRange = [source rangeOfString:@"##"];
NSRange secondDelimiterRange = [source rangeOfString:@"$$"];
NSString *result = [source substringWithRange:
  NSMakeRange(firstDelimiterRange.origin +2, 
    firstDelimiterRange.origin - secondDelimiterRange.origin)];
于 2011-07-06T03:57:46.130 に答える