だから私は次の正規表現を持っていました:
@"(#|@)\\S+"
ただし、ここの \S には # と @ も含まれます。この正規表現を \S にして、# または @ を含まないようにするにはどうすればよいですか?
基本的に、# と @ を除く非空白文字が必要です
だから私は次の正規表現を持っていました:
@"(#|@)\\S+"
ただし、ここの \S には # と @ も含まれます。この正規表現を \S にして、# または @ を含まないようにするにはどうすればよいですか?
基本的に、# と @ を除く非空白文字が必要です
文字のセットを除外するには、その前に ^ を追加するだけです。^(@|#) のようにします。
以下を使用できます:-
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:@""];
最初にこの質問をした別のスレッドで説明したように、
@"(#|@)\\w+"
あなたが望むと思うことをします。#、@、および空白以外のすべての文字が本当に必要な場合は、
@"[#@][^@#\\s]+"
するべきです。これらは両方ともあなたの文字列を取ります:
@"@baz@marroon#red#blue #big@cat#dog"
そして、あなたがそれを使うなら、あなたmatchesInString:options:range
に与えます:
@"@baz"
@"@marroon"
@"#red"
@"#blue"
@"#big"
@"@cat"
@"#dog"
これが必要ない場合は、入力文字列と出力として必要なものを提供してください。それを取得する方法を教えてくれます。
試してみてください(#|@)[^\s#@]+
。[^\s#@]
は、スペース文字、# および @ を除くすべてに一致します。
また、objective-c 文字列リテラルに入れるときは、\ を二重にエスケープすることを忘れないでください。