所以我有以下正则表达式:
@"(#|@)\\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:@""];
试试(#|@)[^\s#@]+
。[^\s#@]
将匹配除空格字符、# 和 @ 之外的所有内容。
并记住在放入objective-c字符串文字时双重转义\。
正如您最初提出这个问题的另一个线程所讨论的那样,
@"(#|@)\\w+"
会做我认为你想要的。如果您真的想要除 #、@ 和空格之外的每个字符,那么
@"[#@][^@#\\s]+"
应该这样做。这两个都将使用您的字符串:
@"@baz@marroon#red#blue #big@cat#dog"
如果你使用matchesInString:options:range
它给你:
@"@baz"
@"@marroon"
@"#red"
@"#blue"
@"#big"
@"@cat"
@"#dog"
如果这不是你想要的,你应该给我们输入字符串和你想要的输出,我们可以告诉你如何得到它。