2012-01-16 25 views
7

thể trùng lặp:
Process escape sequences in a string in PythonCó mô-đun Python để phân tích ký hiệu ngắt dòng trong chuỗi thô không?

Nếu tôi nhận được chuỗi này, ví dụ từ một mẫu web:

'\n test' 

Ký hiệu '\n' sẽ không được hiểu là một ngắt dòng. Làm thế nào tôi phân tích chuỗi này để nó trở thành một ngắt dòng?

Tất nhiên tôi có thể sử dụng replace, split, re, v.v., để thực hiện thủ công.

Nhưng có thể có một mô-đun cho điều đó, vì tôi không muốn bị buộc phải xử lý tất cả các ký hiệu \something theo cách thủ công.

Tôi cố gắng để biến nó thành byte sau đó sử dụng str như một construtor nhưng điều đó không làm việc:

>>> str(io.BytesIO(ur'\n'.encode('utf-8')).read()) 
'\\n' 
+0

Bạn có chắc chắn nó sẽ không được hiểu là ngắt dòng không? Bạn có nghĩa là repr (thestring) là '\ n test' hoặc "'\ n test'"? – AdamKG

+0

Nó không thể được hiểu là ngắt dòng. Ngắt dòng chỉ được diễn giải trong một chuỗi phân đoạn, trong mã nguồn. Đầu vào này xuất phát từ web, nếu bạn muốn có một mã tương đương, bạn cần phải viết một số tiền với tiền tố 'r'. –

+0

Bạn có ý nghĩa gì khi không được hiểu là ngắt dòng? Bạn có thể nhận '' \\ n'' thay thế không? – jcollado

Trả lời

13

Sử dụng .decode ('string_escape')

>>> print "foo\\nbar\\n\\tbaz" 
foo\nbar\n\tbaz 
>>> print "foo\\nbar\\n\\tbaz".decode('string_escape') 
foo 
bar 
     baz 

Như tôi nhập mã, ở trên phải thoát khỏi \ để tạo chuỗi chứa 2 ký tự \ n

Chỉnh sửa: thực sự đây là bản sao của Process escape sequences in a string in Python

Các vấn đề liên quan