ios - 正则表达式,未知转义序列 '\s'

标签 ios objective-c regex

我希望去除字符串开头和结尾的空格。我正在使用以下正则表达式。

NSString *pattern = @"(?:^\s+|\s+$)";

这会出现一个错误 \s不是有效的转义字符。将其替换为 \\s似乎有效,但我想知道为什么?我以为\s是一个空白字符并且 \\s会给我一个 '\s' 的文字字符串?

最佳答案

\s(不是 /s)是空白字符的正则表达式转义。

但是在 NSString 文字(和 C 字符串文字)中,您需要使用反斜杠转义反斜杠,以防止反斜杠被用作字符转义序列。

这就是为什么你的 NSString 中需要 \\s 。否则,编译器认为您正在尝试使用转义字符 \s,它不是有效的 C/Objective-C 转义字符(有效示例为 \n\t 等)。

关于ios - 正则表达式,未知转义序列 '\s',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31970609/

相关文章:

ios - 使用 AFNetworking 避免重复的 HTTP 请求

ios - 判断urlsession.shared和Json解析完成的时间

objective-c - UITextField 绑定(bind)

java - java 验证电子邮件格式

javascript - 用于替换特定电话号码的正则表达式

javascript - 如何在 JavaScript 中用 "/"替换字符串中的每个点

ios - 如何提供支持 UITableViewDataSource 协议(protocol)的继承 View Controller ?

ios - Xcode 6.1 : Unknown class x in Interface Builder file

objective-c - 模拟 Skitch 的文字效果

ios - CollectionView 取笑上一个和下一个