163
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Đầ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
2, vì vậy tôi cho rằngCode language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
3 là viết tắt của Regex.Code language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
Ví dụ:
regex = re.compile[
r'^[A-Z]'
r'[A-Z0-9-]'
r'[A-Z]$', re.IGNORECASE
]
Vậy
3 có nghĩa là gì trong trường hợp này? Tại sao chúng ta cần nó?Code language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
Remi guan
20.6K17 Huy hiệu vàng62 Huy hiệu bạc84 Huy hiệu đồng17 gold badges62 silver badges84 bronze badges
Hỏi ngày 24 tháng 1 năm 2011 lúc 8:48Jan 24, 2011 at 8:48
1
3 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.Code language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
Ví dụ:
6 sẽ được coi là một nhân vật mới, trong khiCode language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
7 sẽ được coi là các ký tự
s = 'lang\tver\nPython\t3' print[s]
Code language: Python [python]
8 theo sau làCode language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
9.Code language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
Khi có tiền tố
0 hoặcCode language: Python [python]
lang ver Python 3
1, một ký tự sau dấu gạch chéo ngược được bao gồm trong chuỗi mà không thay đổi và tất cả các dấu gạch chéo ngược được để lại trong chuỗi. Ví dụ: chuỗi chữCode language: Python [python]
lang ver Python 3
2 bao gồm hai ký tự: dấu gạch chéo ngược và chữ thườngCode language: Python [python]
lang ver Python 3
3. Trích dẫn chuỗi có thể được thoát ra bằng dấu gạch chéo ngược, nhưng dấu gạch chéo ngược vẫn còn trong chuỗi; Ví dụ,Code language: Python [python]
lang ver Python 3
4 là một chuỗi hợp lệ bao gồm hai ký tự: dấu gạch chéo ngược và báo giá kép;Code language: Python [python]
lang ver Python 3
5 không phải là một chuỗi hợp lệ theo nghĩa đen [ngay cả một chuỗi thô cũng không thể kết thúc bằng một số lượng ngược lẻ]. Cụ thể, một chuỗi thô không thể kết thúc trong một dấu gạch chéo ngược [vì dấu gạch chéo ngược sẽ thoát khỏi ký tự trích dẫn sau]. Cũng lưu ý rằng một dấu gạch chéo ngược duy nhất theo sau là một dòng mới được hiểu là hai ký tự đó là một phần của chuỗi, không phải là tiếp tục dòng.Code language: Python [python]
lang ver Python 3
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ụ:
r'\n'
là một chuỗi có dấu gạch chéo ngược theo chữ cái
9. [Nếu không cóCode language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
3, nó sẽ là một dòng mới.]Code language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
8 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ụngCode language: Python [python]
lang ver Python 3
9 để chỉ ra Unicode.Code language: Python [python]
lang ver Python 3
Đã trả lời ngày 24 tháng 1 năm 2011 lúc 8:49Jan 24, 2011 at 8:49
1
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 Python
Trong Python, khi bạn đặt trước một chuỗi với chữ cái
3 hoặcCode language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
1, chẳng hạn nhưCode language: Python [python]
s = r'lang\tver\nPython\t3' print[s]
2 vàCode language: Python [python]
s = r'lang\tver\nPython\t3' print[s]
3, 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 [Code language: Python [python]
s = r'lang\tver\nPython\t3' print[s]
8] là các ký tự theo nghĩa đen.Code language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
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 [
8] để biểu thị sự bắt đầu của một chuỗi thoát. Ví dụ:Code language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
Code language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
Output:
Code language: Python [python]
lang ver Python 3
Tuy nhiên, các chuỗi thô coi dấu gạch chéo ngược [
8] là một đặc tính theo nghĩa đen. Ví dụ:Code language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
Code language: Python [python]
s = r'lang\tver\nPython\t3' print[s]
Output:
Code language: Python [python]
lang\tver\nPython\t3
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 [
8] được biểu thị dưới dạng dấu gạch chéo ngược đôi [Code language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
8]:Code language: Python [python]
s = r'lang\tver\nPython\t3' print[s]
Code language: Python [python]
s1 = r'lang\tver\nPython\t3' s2 = 'lang\\tver\\nPython\\t3' print[s1 == s2] # True
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:
s = '\n' print[len[s]] # 1
Code language: Python [python]
Tuy nhiên, trong một chuỗi thô, Python đếm ngược dòng [
8] là một ký tự:Code language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
Code language: Python [python]
s = r'\n' print[len[s]] # 2
Vì dấu gạch chéo ngược [
8] thoát khỏi trích dẫn đơn [Code language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
1] hoặc trích dẫn kép [Code language: Python [python]
lang\tver\nPython\t3
2], một chuỗi thô không thể kết thúc bằng một số lượng ngược.Code language: Python [python]
lang\tver\nPython\t3
Ví dụ:
Code language: Python [python]
s = r'\'
Error:
r'\n'
0Hoặc
r'\n'
1Error:
r'\n'
0Sử dụng chuỗi thô để xử lý đường dẫn tệp trên Windows
Windows OS sử dụng dấu gạch chéo ngược để tách các đường dẫn. Ví dụ:
r'\n'
3Nế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:
r'\n'
4Error:
r'\n'
5Python đố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:
r'\n'
6Output:
r'\n'
7Trong ví dụ này,
3 là một tab vàCode language: Python [python]
lang\tver\nPython\t3
4 là dòng mới.Code language: Python [python]
lang\tver\nPython\t3
Để 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:
r'\n'
8Chuyể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ụ:
r'\n'
9Output:
0Code language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
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:
1Code language: Python [python]
s = 'lang\tver\nPython\t3' print[s]
Bản tóm tắt
- Tiền tố một chuỗi theo nghĩa đen với chữ R hoặc R để biến nó thành một chuỗi thô.
- Chuỗi thô coi dấu gạch chéo ngược như một nhân vật theo nghĩa đen.
Bạn có thấy hướng dẫn này hữu ích không?