Tôi đang viết một biểu thức chính quy trong Objective-C.Cái gì ? (chuỗi dấu chấm hỏi dấu chấm hỏi) có nghĩa là chuỗi thoát?
Trình tự thoát \w
là bất hợp pháp và phát ra cảnh báo, do đó biểu thức chính quy /\w/
phải được viết là @"\\w"
; trình tự thoát \?
là valid, apparently, và không phát ra cảnh báo, vì vậy biểu thức chính quy /\?/
phải được viết là @"\\?"
(tức là dấu gạch chéo ngược phải được thoát).
Dấu hỏi không hiển thị như \t
hoặc \n
, vậy tại sao là \?
chuỗi thoát hợp lệ?
Chỉnh sửa: Để làm rõ, tôi không hỏi về định lượng, tôi hỏi về chuỗi thoát chuỗi. Đó là, điều này không phát ra một cảnh báo:
NSString *valid = @"\?";
Ngược lại, này phát ra một cảnh báo ("Unknown thoát chuỗi '\ w'"):
NSString *invalid = @"\w";
Nó có nghĩa là bạn đang cố gắng để phù hợp (tùy thuộc vào chức năng) một chữ '?'? – Jerry
Bản sao có thể có của [Tại sao là "\?" một chuỗi thoát trong C/C++?] (http://stackoverflow.com/questions/19374878/why-is-an-escape-sequence-in-cc) (Mục tiêu-C kế thừa tính năng này từ C, vì vậy đây thực sự là một bản sao.) –