0

だから私は次の正規表現を持っていました:

@"(#|@)\\S+"

ただし、ここの \S には # と @ も含まれます。この正規表現を \S にして、# または @ を含まないようにするにはどうすればよいですか?

基本的に、# と @ を除く非空白文字が必要です

4

3 に答える 3

0

文字のセットを除外するには、その前に ^ を追加するだけです。^(@|#) のようにします。

以下を使用できます:-

NSStirng *string=@"Your String";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(@|#|\s)" options:NSRegularExpressionCaseInsensitive error:&error];

 NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0
range:NSMakeRange(0, [string length]) withTemplate:@""];
于 2012-05-30T18:00:38.920 に答える
0

最初にこの質問をした別のスレッドで説明したように、

@"(#|@)\\w+" 

あなたが望むと思うことをします。#、@、および空白以外のすべての文字が本当に必要な場合は、

@"[#@][^@#\\s]+" 

するべきです。これらは両方ともあなたの文字列を取ります:

@"@baz@marroon#red#blue #big@cat#dog"

そして、あなたがそれを使うなら、あなたmatchesInString:options:rangeに与えます:

@"@baz"
@"@marroon"
@"#red"
@"#blue"
@"#big"
@"@cat"
@"#dog"

これが必要ない場合は、入力文字列と出力として必要なものを提供してください。それを取得する方法を教えてくれます。

于 2012-05-31T03:10:18.767 に答える
0

試してみてください(#|@)[^\s#@]+[^\s#@]は、スペース文字、# および @ を除くすべてに一致します。

また、objective-c 文字列リテラルに入れるときは、\ を二重にエスケープすることを忘れないでください。

于 2012-05-30T19:52:23.100 に答える