0
//string
NSString *haystack = @".test {test:test} .test2{dasf:asdF}";
//pattern
 NSString *needle = @"[^{}]*{[^{}]*}";

これから必要なのは、配列内の.test {test:test}と.test2 {dasf:asdF}です(残りのコードはこれを処理します)が、結果が見つからないため、何らかの理由でこの正規表現が正しく機能していません。

もしも

NSString *needle = @"[^{}]*";

私は次のようになります

(
".test ",
"",
"test:test",
"",
" .test2",
"",
"dasf:asdF",
"",
""
)

これは予想されます。何度もいじった後、正規表現の{と}に問題があるようですが、理由はわかりません。

ちなみに、上記の配列でこれらの空の要素を取得する理由を誰かが説明できれば、それも知っておくと便利です。

ありがとう!

4

2 に答える 2

1

[^{}]*の代わりに[^{}]+(プラス付き)を試しましたか?*がゼロ文字にも一致するという理由だけで

于 2012-06-16T09:17:03.297 に答える
0

使ってみませんか:

 NSString *needle = @"[^{}]*\{[^{}]*\}";

確かに、{regexs}では特別な意味があります(ただし、内で使用すると「自動的に」エスケープされます[]

于 2012-06-16T09:21:04.337 に答える