Đầu tiên tôi thấy nó được sử dụng trong việc xây dựng các biểu thức chính quy trên nhiều dòng như một đối số phương thức thành >>> 'path\to\the\thing' 'path\to\the\thing' >>> print('path\to\the\thing') path o he hing >>>5, vì vậy tôi cho rằng >>> 'path\to\the\thing' 'path\to\the\thing' >>> print('path\to\the\thing') path o he hing >>>6 là viết tắt của Regex. Show Ví dụ:
Vậy >>> 'path\to\the\thing' 'path\to\the\thing' >>> print('path\to\the\thing') path o he hing >>>6 có nghĩa là gì trong trường hợp này? Tại sao chúng ta cần nó?
Remi guan 20.6K17 Huy hiệu vàng62 Huy hiệu bạc85 Huy hiệu Đồng17 gold badges62 silver badges85 bronze badges Hỏi ngày 24 tháng 1 năm 2011 lúc 8:48Jan 24, 2011 at 8:48
1 >>> 'path\to\the\thing' 'path\to\the\thing' >>> print('path\to\the\thing') path o he hing >>>6 có nghĩa là chuỗi sẽ được coi là một chuỗi thô, điều đó có nghĩa là tất cả các mã thoát sẽ bị bỏ qua. Ví dụ: >>> 'path\to\the\thing' 'path\to\the\thing' >>> print('path\to\the\thing') path o he hing >>>9 sẽ được coi là một nhân vật mới, trong khi >>> r'path\to\the\thing' 'path\\to\\the\\thing' >>> print(r'path\to\the\thing') path\to\the\thing >>>0 sẽ được coi là các ký tự >>> r'path\to\the\thing' 'path\\to\\the\\thing' >>> print(r'path\to\the\thing') path\to\the\thing >>>1 theo sau là >>> r'path\to\the\thing' 'path\\to\\the\\thing' >>> print(r'path\to\the\thing') path\to\the\thing >>>2.
Nguồn: Chuỗi Python nghĩa đen Đã trả lời ngày 24 tháng 1 năm 2011 lúc 8:49Jan 24, 2011 at 8:49
2 Nó có nghĩa là Escapes won được dịch. Ví dụ:
là một chuỗi có dấu gạch chéo ngược theo chữ cái >>> r'path\to\the\thing' 'path\\to\\the\\thing' >>> print(r'path\to\the\thing') path\to\the\thing >>>2. (Nếu không có >>> 'path\to\the\thing' 'path\to\the\thing' >>> print('path\to\the\thing') path o he hing >>>6, nó sẽ là một dòng mới.) >>> 'path\\to\\the\\thing' 'path\\to\\the\\thing' >>> print('path\\to\\the\\thing') path\to\the\thing >>>1 không đứng về chuỗi byte và được sử dụng trong Python 3, trong đó các chuỗi được Unicode theo mặc định. Trong các chuỗi Python 2.x là các chuỗi byte theo mặc định và bạn đã sử dụng >>> 'path\\to\\the\\thing' 'path\\to\\the\\thing' >>> print('path\\to\\the\\thing') path\to\the\thing >>>2 để chỉ ra Unicode. Đã trả lời ngày 24 tháng 1 năm 2011 lúc 8:49Jan 24, 2011 at 8:49
1 Một ’r, trước khi một chuỗi bảo người phiên dịch Python coi dấu gạch chéo ngược là một ký tự theo nghĩa đen (RAW). Thông thường, Python sử dụng dấu gạch chéo ngược như các ký tự thoát. Mở đầu định nghĩa chuỗi với ‘R, là một cách hữu ích để xác định một chuỗi trong đó bạn cần dấu gạch chéo ngược để trở thành một dấu gạch chéo ngược thực tế và không phải là một phần của mã thoát có nghĩa là một cái gì đó khác trong chuỗi. 1. Trong ví dụ này, Python sẽ giải thích từng ‘\ t, được tìm thấy trong chuỗi này dưới dạng tab. Đó là, dấu gạch chéo ngược+t được hiểu là một chuỗi thoát với một mục đích đặc biệt. 2. Bằng cách thêm R hàng đầu, Python sẽ biết rằng các dấu gạch chéo ngược sẽ được hiểu là các ký tự theo nghĩa đen và không phải là trình tự thoát. Thật thú vị, lưu ý làm thế nào Python đại diện cho dấu gạch chéo ngược theo nghĩa đen như một chuỗi thoát của dấu gạch chéo ngược + dấu gạch chéo ngược.r, Python will know that the backslashes are to be interpreted as literal characters and not escape sequences. Interestingly, note how Python represents the literal backslash–as an
escape sequence of backslash + backslash. 3. Điều này có nghĩa là một cách khác để xử lý vấn đề ngược dòng là sử dụng Backslash + Backslash trong định nghĩa chuỗi của bạn. Tuy nhiên, điều này có cảm giác giống như một cách khó hiểu hơn để xác định chuỗi với tôi khi so sánh với việc sử dụng ‘r,. Sử dụng ‘R, tôi nghĩ rằng, mã dễ đọc hơn. Tài liệu tham khảo Python 3, Phần 2.4.1, Chuỗi và BYTES BYTES Thêm công cụ miễn phí!Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu về các chuỗi RAW Python và cách sử dụng chúng để xử lý các chuỗi coi dấu gạch chéo ngược như các ký tự theo nghĩa đen.: in this tutorial, you will learn about Python raw strings and how to use them to handle strings that treat backslashes as literal characters. Giới thiệu về chuỗi Raw PythonTrong Python, khi bạn đặt trước một chuỗi với chữ cái >>> 'path\to\the\thing' 'path\to\the\thing' >>> print('path\to\the\thing') path o he hing >>>6 hoặc >>> 'path\\to\\the\\thing' 'path\\to\\the\\thing' >>> print('path\\to\\the\\thing') path\to\the\thing >>>4, chẳng hạn như >>> 'path\\to\\the\\thing' 'path\\to\\the\\thing' >>> print('path\\to\\the\\thing') path\to\the\thing >>>5 và >>> 'path\\to\\the\\thing' 'path\\to\\the\\thing' >>> print('path\\to\\the\\thing') path\to\the\thing >>>6, chuỗi đó trở thành một chuỗi thô. Không giống như một chuỗi thông thường, một chuỗi thô coi các dấu gạch chéo ngược ( >>> r'path\to\the\thing' 'path\\to\\the\\thing' >>> print(r'path\to\the\thing') path\to\the\thing >>>1) là các ký tự theo nghĩa đen. Chuỗi thô rất hữu ích khi bạn xử lý các chuỗi có nhiều dấu gạch chéo ngược, ví dụ, các biểu thức thông thường hoặc đường dẫn thư mục trên Windows. Để đại diện cho các ký tự đặc biệt như Tab và Newlines, Python sử dụng dấu gạch chéo ngược ( >>> r'path\to\the\thing' 'path\\to\\the\\thing' >>> print(r'path\to\the\thing') path\to\the\thing >>>1) để biểu thị sự bắt đầu của một chuỗi thoát. Ví dụ:
Output:
Tuy nhiên, các chuỗi thô coi dấu gạch chéo ngược ( >>> r'path\to\the\thing' 'path\\to\\the\\thing' >>> print(r'path\to\the\thing') path\to\the\thing >>>1) là một đặc tính theo nghĩa đen. Ví dụ:
Output:
Một chuỗi thô giống như chuỗi thông thường của nó với dấu gạch chéo ngược ( >>> r'path\to\the\thing' 'path\\to\\the\\thing' >>> print(r'path\to\the\thing') path\to\the\thing >>>1) được biểu thị dưới dạng dấu gạch chéo ngược đôi ( 1):
Trong một chuỗi thông thường, Python tính một chuỗi thoát là một ký tự duy nhất: 0Tuy nhiên, trong một chuỗi thô, Python đếm ngược dòng ( >>> r'path\to\the\thing' 'path\\to\\the\\thing' >>> print(r'path\to\the\thing') path\to\the\thing >>>1) là một ký tự: 1Vì dấu gạch chéo ngược ( >>> r'path\to\the\thing' 'path\\to\\the\\thing' >>> print(r'path\to\the\thing') path\to\the\thing >>>1) thoát khỏi trích dẫn đơn ( 4) hoặc trích dẫn kép ( 5), một chuỗi thô không thể kết thúc bằng một số lượng ngược. Ví dụ: 2Error: 3Hoặc 4Error: 3Sử dụng chuỗi thô để xử lý đường dẫn tệp trên WindowsWindows OS sử dụng dấu gạch chéo ngược để tách các đường dẫn. Ví dụ: 6Nếu bạn sử dụng đường dẫn này như một chuỗi thông thường, Python sẽ đưa ra một số lỗi: 7Error: 8Python đối xử với \ u trong đường dẫn như một lối thoát Unicode nhưng không thể giải mã nó. Bây giờ, nếu bạn thoát khỏi dấu gạch chéo ngược đầu tiên, bạn sẽ có các vấn đề khác: 9Output: >>> 'path\to\the\thing' 'path\to\the\thing' >>> print('path\to\the\thing') path o he hing >>>0 Trong ví dụ này, 6 là một tab và 7 là dòng mới. Để làm cho nó dễ dàng, bạn có thể biến đường dẫn thành một chuỗi thô như thế này: >>> 'path\to\the\thing' 'path\to\the\thing' >>> print('path\to\the\thing') path o he hing >>>1 Chuyển đổi một chuỗi thông thường thành một chuỗi thôĐể chuyển đổi một chuỗi thông thường thành một chuỗi thô, bạn sử dụng hàm repr () tích hợp. Ví dụ: >>> 'path\to\the\thing' 'path\to\the\thing' >>> print('path\to\the\thing') path o he hing >>>2 Output: >>> 'path\to\the\thing' 'path\to\the\thing' >>> print('path\to\the\thing') path o he hing >>>3 Lưu ý rằng chuỗi RAW kết quả có báo giá ở đầu và cuối chuỗi. Để loại bỏ chúng, bạn có thể sử dụng các lát cắt: >>> 'path\to\the\thing' 'path\to\the\thing' >>> print('path\to\the\thing') path o he hing >>>4 Bản tóm tắt
Bạn có thấy hướng dẫn này hữu ích không? R trong chuỗi Python là gì?Trong Python, các chuỗi có tiền tố R hoặc R, chẳng hạn như R '...' và R "...", được gọi là chuỗi thô và coi dấu gạch chéo ngược \ là ký tự theo nghĩa đen.Chuỗi thô rất hữu ích khi xử lý các chuỗi sử dụng nhiều dấu gạch chéo ngược, chẳng hạn như đường dẫn Windows và các mẫu biểu thức thông thường.raw strings and treat backslashes \ as literal characters. Raw strings are useful when handling strings that use a lot of backslashes, such as Windows paths and regular expression patterns.
\ R trong ví dụ Python là gì?Một chiếc xe ngựa trở lại không có gì ngoài một nhân vật thoát đơn giản.\ n cũng là một nhân vật thoát ra tạo ra một dòng mới.Trở lại vận chuyển hoặc \ r là một tính năng rất độc đáo của Python.\ r sẽ chỉ hoạt động khi bạn đã chuyển con trỏ của mình sang đầu chuỗi hoặc dòng.\r will just work as you have shifted your cursor to the beginning of the string or line. |