所以我有以下正则表达式:
@"(#|@)\\S+"
然而,这里的\ S还包括#和@。如何使这个正则表达式成为\ S但不包括#或@?
基本上我想要一个非空格字符,不包括#和@
答案 0 :(得分: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:@""];
答案 1 :(得分:0)
试试(#|@)[^\s#@]+
。 [^\s#@]
将匹配除空格字符以外的所有内容,#和@。
请记住在放入objective-c字符串文字时双重转义。
答案 2 :(得分:0)
正如您最初提出此问题的other thread所述,
@"(#|@)\\w+"
会做我认为你想要的。如果确实想要除#,@和空格之外的每个字符,那么
@"[#@][^@#\\s]+"
应该这样做。这两个都将采用你的字符串:
@"@baz@marroon#red#blue #big@cat#dog"
如果你使用matchesInString:options:range
,它会给你:
@"@baz"
@"@marroon"
@"#red"
@"#blue"
@"#big"
@"@cat"
@"#dog"
如果这不是你想要的,你应该给我们输入字符串和你想要的输出,我们可以告诉你如何获得它。