Hướng dẫn how do you skip double quotes in python? - làm thế nào để bạn bỏ qua dấu ngoặc kép trong python?

14

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.

Làm cách nào để thay thế "bằng \" trong chuỗi python?

Tôi có một chuỗi có dấu ngoặc kép:

s = 'a string with "double" quotes'

Tôi muốn thoát khỏi các trích dẫn kép với một dấu gạch chéo ngược.

Làm như sau không hoàn toàn hoạt động, nó thoát ra với hai dấu gạch chéo ngược:

s.replace['"', '\\"']
'a string with \\"double\\" quotes'

In đầu ra của chuỗi đó cho thấy những gì tôi muốn. Nhưng tôi không chỉ muốn in đúng chuỗi, tôi muốn nó được lưu trong một biến. Bất cứ ai có thể giúp tôi với biểu hiện chính xác chính xác?

Đã hỏi ngày 23 tháng 6 năm 2011 lúc 19:47Jun 23, 2011 at 19:47

Nỗ lực ban đầu của bạn hoạt động tốt. Các dấu gạch chéo ngược đôi mà bạn thấy chỉ đơn giản là một cách hiển thị các dấu gạch chéo ngược thực sự có trong chuỗi. Xem thêm: __repr__[]

>>> s = 'a string with "double" quotes'
>>> ss = s.replace['"', '\\"']
>>> len[s]
29
>>> len[ss]
31

Đã trả lời ngày 23 tháng 6 năm 2011 lúc 20:00Jun 23, 2011 at 20:00

ʇsәɹoɉʇsәɹoɉʇsәɹoɈ

21.7K7 Huy hiệu vàng52 Huy hiệu bạc60 Huy hiệu Đồng7 gold badges52 silver badges60 bronze badges

Chuỗi là chính xác. Nhưng repr sẽ sử dụng chính biểu tình ngược để hiển thị các ký tự không thể in được và tính nhất quán [nó được cho là tạo thành một chuỗi trăn theo nghĩa đen, khi được đánh giá, đưa ra cùng một chuỗi là đầu vào cho repr] sợi dây.

Lưu ý rằng đây là một thuật toán thoát ra khá hạn chế. Tùy thuộc vào những gì bạn cần nó, bạn có thể phải mở rộng nó đáng kể [hoặc có một giải pháp làm sẵn, ví dụ: các câu lệnh tiền xử lý khi làm việc với cơ sở dữ liệu]

Đã trả lời ngày 23 tháng 6 năm 2011 lúc 19:52Jun 23, 2011 at 19:52

Điều này đã làm công việc cho tôi.

s.replace['"', '\\"']

Đã trả lời ngày 27 tháng 3 năm 2017 lúc 12:04Mar 27, 2017 at 12:04

Dinadinadina

8271 Huy hiệu vàng12 Huy hiệu bạc27 Huy hiệu đồng1 gold badge12 silver badges27 bronze badges

Không thể nhìn thấy một 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. Nếu bạn sẽ kiểm tra độ dài của cùng một chuỗi, bạn sẽ có thể thấy câu trả lời. Ngoài ra, nếu bạn sẽ thay thế chuỗi mới một lần nữa bằng dấu ngoặc kép, bạn sẽ nhận được chuỗi gốc.

Đã trả lời ngày 24 tháng 6 năm 2011 lúc 5:10Jun 24, 2011 at 5:10

Sam Samsam

17.6K24 Huy hiệu vàng78 Huy hiệu bạc115 Huy hiệu đồng24 gold badges78 silver badges115 bronze badges

Các câu trả lời khác có thể nguy hiểm và thất bại

Ví dụ:

  • Chuỗi nghĩa đen
    s.replace['"', '\\"']
    'a string with \\"double\\" quotes'
    
    1 [ví dụ: ____ 12] sẽ trở thành
    s.replace['"', '\\"']
    'a string with \\"double\\" quotes'
    
    3 không thoát khỏi ____ 14! Nó thoát khỏi
    s.replace['"', '\\"']
    'a string with \\"double\\" quotes'
    
    5 thay thế!
    would become
    s.replace['"', '\\"']
    'a string with \\"double\\" quotes'
    
    3 which does not escape the
    s.replace['"', '\\"']
    'a string with \\"double\\" quotes'
    
    4!
    it escapes the
    s.replace['"', '\\"']
    'a string with \\"double\\" quotes'
    
    5 instead!
  • Ngay cả khi edgecase được thêm vào, những thứ như
    s.replace['"', '\\"']
    'a string with \\"double\\" quotes'
    
    6 có thể sẽ gây ra vấn đề
  • Đây là cách các cuộc tấn công tiêm xảy ra [chuỗi thoát thủ công nói chung là một công việc dễ bị lỗi]

Đây là một giải pháp tốt hơn

def escape_double_quotes[string]:
    return string.replace['\\','\\\\'].replace['"',r'\"']
print[escape_double_quotes['Howdy \"']]   # Howdy \"
print[escape_double_quotes['Howdy \\"']]  # Howdy \\\"

NHƯNG

Điều này không thoát khỏi mọi thứ. Nó chỉ nên đảm bảo rằng các tài khoản kép luôn được thoát ra.

Để thoát khỏi mọi thứ cho Python, hãy thử sử dụng

s.replace['"', '\\"']
'a string with \\"double\\" quotes'
7. Nhưng một lần nữa, lưu ý "trốn thoát" phụ thuộc vào người đang đọc. Phương pháp này sẽ không an toàn cho các truy vấn cơ sở dữ liệu hoặc đổ vào các trang web.

import json
def escape_double_quotes[string]:
    return json.dumps[string][1:-1]
print[escape_double_quotes['Howdy \"']]]     # Howdy \"
print[escape_double_quotes['Howdy \\"']]     # Howdy \\\"
print[escape_double_quotes['Howdy \n \"']]   # Howdy \n \"

Đã trả lời ngày 29 tháng 6 lúc 13:29Jun 29 at 13:29

Jeff Hykinjeff HykinJeff Hykin

1.37913 Huy hiệu bạc24 Huy hiệu đồng13 silver badges24 bronze badges

Làm cách nào để bỏ qua một trích dẫn kép trong Python?

Bằng cách sử dụng ký tự Escape \ ", chúng tôi có thể sử dụng dấu ngoặc kép để gửi một chuỗi bao gồm văn bản được trích dẫn giữa các trích dẫn kép. ... Cách định dạng văn bản trong Python 3 ..

Làm thế nào để bạn bỏ qua trích dẫn trong Python?

Trong Python, ký tự Backslash \ được sử dụng để truyền tải các chuỗi thoát.Nhân vật mà chúng tôi muốn trốn thoát được thêm vào ngay sau sự chéo ngược này.Trong bài viết này, chúng tôi sẽ thảo luận về cách thoát khỏi trích dẫn trong Python.backslash character \ is used to convey escape sequences. The character that we want to escape is added immediately after this backslash. In this article, we will discuss how to escape quotes in Python.

Làm thế nào để bạn thoát khỏi một báo giá kép?

Trích dẫn kép của Double 'Escape' Double Trích dẫn Khi sử dụng dấu ngoặc kép đôi "" Để tạo một chuỗi theo nghĩa đen, ký tự trích dẫn kép cần được thoát ra bằng cách sử dụng dấu gạch chéo ngược: \ ".using a backslash: \" .

Làm thế nào để bạn vượt qua một trích dẫn duy nhất trong Python?

Một là thoát khỏi trích dẫn duy nhất bằng cách đặt một dấu gạch chéo ngược trước nó.Cái còn lại là sử dụng dấu ngoặc kép thay vì trích dẫn đơn như các trích dẫn kèm theo.placing a backslash before it. The other is to use double quotes instead of single quotes as the enclosing quotes.

Bài Viết Liên Quan

Chủ Đề