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

试试(#|@)[^\s#@]+[^\s#@]将匹配除空格字符、# 和 @ 之外的所有内容。

并记住在放入objective-c字符串文字时双重转义\。

于 2012-05-30T19:52:23.100 回答
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 回答