Hướng dẫn what does r mean in python strings? - r có nghĩa là gì trong chuỗi python?

Đầ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.

Ví dụ:

regex = re.compile(
    r'^[A-Z]'
    r'[A-Z0-9-]'
    r'[A-Z]$', re.IGNORECASE
)

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ó?

Hướng dẫn what does r mean in python strings? - r có nghĩa là gì trong chuỗi python?

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.

Khi có tiền tố

>>> r'path\to\the\thing'
'path\\to\\the\\thing'
>>> print(r'path\to\the\thing')
path\to\the\thing
>>>
3 hoặc
>>> r'path\to\the\thing'
'path\\to\\the\\thing'
>>> print(r'path\to\the\thing')
path\to\the\thing
>>>
4, 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ữ
>>> r'path\to\the\thing'
'path\\to\\the\\thing'
>>> print(r'path\to\the\thing')
path\to\the\thing
>>>
5 bao gồm hai ký tự: dấu gạch chéo ngược và chữ thường
>>> r'path\to\the\thing'
'path\\to\\the\\thing'
>>> print(r'path\to\the\thing')
path\to\the\thing
>>>
6. 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ụ,
>>> r'path\to\the\thing'
'path\\to\\the\\thing'
>>> print(r'path\to\the\thing')
path\to\the\thing
>>>
7 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;
>>> r'path\to\the\thing'
'path\\to\\the\\thing'
>>> print(r'path\to\the\thing')
path\to\the\thing
>>>
8 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.

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

>>> 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

Hướng dẫn what does r mean in python strings? - r có nghĩa là gì trong chuỗi python?

1

R có nghĩa là ‘chuỗi thô

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.

Ví dụ

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.

>>> 'path\to\the\thing'
'path\to\the\thing'
>>> print('path\to\the\thing')
path o he hing
>>>

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.

>>> r'path\to\the\thing'
'path\\to\\the\\thing'
>>> print(r'path\to\the\thing')
path\to\the\thing
>>>

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.

>>> 'path\\to\\the\\thing'
'path\\to\\the\\thing'
>>> print('path\\to\\the\\thing')
path\to\the\thing
>>>

Để biết thêm thông tin

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 Python

Trong 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ụ:

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)

Output:

lang ver Python 3

Code language: Python (python)

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ụ:

s = r'lang\tver\nPython\t3' print(s)

Code language: Python (python)

Output:

lang\tver\nPython\t3

Code language: Python (python)

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 (

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
1):

s1 = r'lang\tver\nPython\t3' s2 = 'lang\\tver\\nPython\\t3' print(s1 == s2) # True

Code language: Python (python)

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:

r'\n'
0

Tuy 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ự:

r'\n'
1

Vì 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 (

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
4) hoặc trích dẫn kép (

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
5), một chuỗi thô không thể kết thúc bằng một số lượng ngược.

Ví dụ:

r'\n'
2

Error:

r'\n'
3

Hoặc

r'\n'
4

Error:

r'\n'
3

Sử 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'
6

Nế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'
7

Error:

r'\n'
8

Python đố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'
9

Output:

>>> 'path\to\the\thing'
'path\to\the\thing'
>>> print('path\to\the\thing')
path o he hing
>>>
0

Trong ví dụ này,

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
6 là một tab và

s = 'lang\tver\nPython\t3' print(s)

Code language: Python (python)
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

  • 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?

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.