我希望去除字符串开头和结尾的空格。我正在使用以下正则表达式。
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/