gpt4 book ai didi

objective-c - 什么是\? (反斜杠问号)转义序列是什么意思?

转载 作者:太空狗 更新时间:2023-10-30 03:50:31 25 4
gpt4 key购买 nike

我正在用 Objective-C 编写一个正则表达式。

转义序列\w不合法,发出警告,所以正则表达式/\w/必须写成@"\\w";转义序列 \?valid, apparently,并且不发出警告,因此正则表达式 /\?/ 必须写成 @"\\?"(即反斜杠必须转义)。

问号不像 \t\n 那样不可见,那么为什么 \? 是一个有效的转义序列?

编辑:澄清一下,我不是在询问量词,而是在询问字符串转义序列。也就是说,这不会发出警告:

NSString *valid = @"\?";

相比之下,这确实发出警告(“未知的转义序列'\w'”):

NSString *invalid = @"\w";

最佳答案

它指定一个文字问号。需要它是因为一个鲜为人知的功能 trigraphs ,您可以在其中编写以问号开头的三字符序列来替换另一个字符。如果你启用了三字母,为了写“??”在字符串中,您需要将其写为 "?\?"为了防止预处理器尝试将其读取为三字母的开头。

(如果您想知道“为什么有人会引入这样的功能?”:一些键盘或字符集不包含常用符号,如 { 。因此他们引入了三字母,这样您就可以写成 ??< .)

关于objective-c - 什么是\? (反斜杠问号)转义序列是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18155056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com