0

私はいくつかのテキストを一致させるためにRegexKitLiteを使用しています:

xxx* [abc] *xxx

[abc] に一致させたいので、このレギュラーを使用します。

NSString *result = [@"xxx[abc]xxx" stringByMatching:@"\\[(.*)?\\]" capture:1];

結果は [abc] です。ただし、そこに改行がある場合:

xxx[abc]xxx

うまくいきません。私は ([\s\S]*) を使用しますが、数学 [abc] も使用しません。このテキストを一致させるにはどうすればよいですか? ありがとうございました

4

1 に答える 1

0

デフォルトでは、.改行は一致しません。あなたが使用することができます

 ... stringByMatching:@"(?s:\\[(.*)?\\])" ...
//                      ^^^^           ^

または-stringByMatching:options:inRange:capture:error:メソッドでRKLDotAllオプションを指定します。

または、貪欲なバリアントを使用することもできます

@"\\[([^\\]]*)\\]"   // \[  (  [ ^\] ]  )   \]
于 2011-07-16T07:35:12.700 に答える