Hướng dẫn how do you change a backslash in a string in python? - làm cách nào để thay đổi dấu gạch chéo ngược trong chuỗi trong python?

Tôi đang cố gắng thay thế một dấu gạch chéo ngược '\' trong một chuỗi bằng mã sau

string = "

\B7

" result = string.replace("\",'')

result:

------------------------------------------------------------
   File "", line 1
     result = string.replace("\",'')
                                     ^
SyntaxError: EOL while scanning string literal

Ở đây tôi không cần cắt lại vì thực sự tôi đang phân tích tệp XML có thẻ ở định dạng trên, vì vậy nếu dấu gạch chéo ngược ở đó, nó sẽ hiển thị invalid token trong quá trình phân tích cú pháp

Tôi có thể biết cách thay thế các dấu gạch chéo ngược bằng chuỗi trống trong Python không

hỏi ngày 27 tháng 9 năm 2012 lúc 9:18Sep 27, 2012 at 9:18

Hướng dẫn how do you change a backslash in a string in python? - làm cách nào để thay đổi dấu gạch chéo ngược trong chuỗi trong python?

0

Chúng tôi cần chỉ định rằng chúng tôi muốn thay thế một chuỗi chứa một dấu gạch chéo ngược. Chúng ta không thể viết điều đó dưới dạng

------------------------------------------------------------
   File "", line 1
     result = string.replace("\",'')
                                     ^
SyntaxError: EOL while scanning string literal
0, bởi vì dấu gạch chéo ngược đang thoát khỏi các trích dẫn kép đóng dự định. Chúng tôi cũng không thể sử dụng một chuỗi thô theo nghĩa đen cho việc này:
------------------------------------------------------------
   File "", line 1
     result = string.replace("\",'')
                                     ^
SyntaxError: EOL while scanning string literal
1 không hoạt động.

Thay vào đó, chúng tôi chỉ cần thoát khỏi dấu gạch chéo ngược bằng cách sử dụng dấu gạch chéo ngược khác:

result = string.replace("\\","")

Karl Knechtel

59.4K10 Huy hiệu vàng86 Huy hiệu bạc132 Huy hiệu đồng10 gold badges86 silver badges132 bronze badges

Đã trả lời ngày 27 tháng 9 năm 2012 lúc 9:20Sep 27, 2012 at 9:20

0

Lỗi là vì bạn đã không thêm một ký tự thoát vào

------------------------------------------------------------
   File "", line 1
     result = string.replace("\",'')
                                     ^
SyntaxError: EOL while scanning string literal
2 của mình, bạn nên cung cấp
------------------------------------------------------------
   File "", line 1
     result = string.replace("\",'')
                                     ^
SyntaxError: EOL while scanning string literal
3 cho
------------------------------------------------------------
   File "", line 1
     result = string.replace("\",'')
                                     ^
SyntaxError: EOL while scanning string literal
4

In [147]: foo = "a\c\d" # example string with backslashes

In [148]: foo 
Out[148]: 'a\\c\\d'

In [149]: foo.replace('\\', " ")
Out[149]: 'a c d'

In [150]: foo.replace('\\', "")
Out[150]: 'acd'

mdoc-2011

2.5674 Huy hiệu vàng20 Huy hiệu bạc41 Huy hiệu đồng4 gold badges20 silver badges41 bronze badges

Đã trả lời ngày 27 tháng 9 năm 2012 lúc 9:19Sep 27, 2012 at 9:19

Avasalavasalavasal

Huy hiệu vàng 14K4 30 Huy hiệu bạc47 Huy hiệu đồng4 gold badges30 silver badges47 bronze badges

1

Trong Python, như được giải thích trong tài liệu:

Ký tự chéo ngược () được sử dụng để thoát khỏi các ký tự có ý nghĩa đặc biệt, chẳng hạn như Newline, chính bản sao lại hoặc ký tự trích dẫn.

Vì vậy, để thay thế

------------------------------------------------------------
   File "", line 1
     result = string.replace("\",'')
                                     ^
SyntaxError: EOL while scanning string literal
5 trong một chuỗi, bạn cần thoát khỏi bản sao lại bằng một dấu gạch chéo ngược khác, do đó:

>>> "this is a \ I want to replace".replace("\\", "?")
'this is a ? I want to replace'

Karl Knechtel

59.4K10 Huy hiệu vàng86 Huy hiệu bạc132 Huy hiệu đồng10 gold badges86 silver badges132 bronze badges

Đã trả lời ngày 27 tháng 9 năm 2012 lúc 9:20Sep 27, 2012 at 9:27

Lỗi là vì bạn đã không thêm một ký tự thoát vào

------------------------------------------------------------
   File "", line 1
     result = string.replace("\",'')
                                     ^
SyntaxError: EOL while scanning string literal
2 của mình, bạn nên cung cấp
------------------------------------------------------------
   File "", line 1
     result = string.replace("\",'')
                                     ^
SyntaxError: EOL while scanning string literal
3 cho
------------------------------------------------------------
   File "", line 1
     result = string.replace("\",'')
                                     ^
SyntaxError: EOL while scanning string literal
4Pierre GM

In [147]: foo = "a\c\d" # example string with backslashes

In [148]: foo 
Out[148]: 'a\\c\\d'

In [149]: foo.replace('\\', " ")
Out[149]: 'a c d'

In [150]: foo.replace('\\', "")
Out[150]: 'acd'
3 gold badges54 silver badges65 bronze badges

1

2.5674 Huy hiệu vàng20 Huy hiệu bạc41 Huy hiệu đồng

import re

new_string = re.sub("\\\\", "", old_string)

Đã trả lời ngày 27 tháng 9 năm 2012 lúc 9:19two backslashes (each one is escaped), then the regex engine compiles that into a pattern that will match one backslash (doing a separate layer of unescaping).

Karl Knechtel

59.4K10 Huy hiệu vàng86 Huy hiệu bạc132 Huy hiệu đồng10 gold badges86 silver badges132 bronze badges

Đã trả lời ngày 27 tháng 9 năm 2012 lúc 9:20Aug 5, 2020 at 21:09

Lỗi là vì bạn đã không thêm một ký tự thoát vào

------------------------------------------------------------
   File "", line 1
     result = string.replace("\",'')
                                     ^
SyntaxError: EOL while scanning string literal
2 của mình, bạn nên cung cấp
------------------------------------------------------------
   File "", line 1
     result = string.replace("\",'')
                                     ^
SyntaxError: EOL while scanning string literal
3 cho
------------------------------------------------------------
   File "", line 1
     result = string.replace("\",'')
                                     ^
SyntaxError: EOL while scanning string literal
4

result = string.replace("\\","")

In [147]: foo = "a\c\d" # example string with backslashes

In [148]: foo 
Out[148]: 'a\\c\\d'

In [149]: foo.replace('\\', " ")
Out[149]: 'a c d'

In [150]: foo.replace('\\', "")
Out[150]: 'acd'

2.5674 Huy hiệu vàng20 Huy hiệu bạc41 Huy hiệu đồng

string.encode('unicode_escape')
result = string.replace("\\", "")
#result=abcdnop.png

Đã trả lời ngày 27 tháng 9 năm 2012 lúc 9:19Jul 20, 2020 at 12:34

Hướng dẫn how do you change a backslash in a string in python? - làm cách nào để thay đổi dấu gạch chéo ngược trong chuỗi trong python?

Avasalavasalvaleriyan

Huy hiệu vàng 14K4 30 Huy hiệu bạc47 Huy hiệu đồng1 silver badge5 bronze badges

1

Trong Python, như được giải thích trong tài liệu:

Ký tự chéo ngược () được sử dụng để thoát khỏi các ký tự có ý nghĩa đặc biệt, chẳng hạn như Newline, chính bản sao lại hoặc ký tự trích dẫn.

Vì vậy, để thay thế

------------------------------------------------------------
   File "", line 1
     result = string.replace("\",'')
                                     ^
SyntaxError: EOL while scanning string literal
5 trong một chuỗi, bạn cần thoát khỏi bản sao lại bằng một dấu gạch chéo ngược khác, do đó:Sep 27, 2012 at 9:28

Đã trả lời ngày 27 tháng 9 năm 2012 lúc 9:27Rohit Jain

Pierre Gmpierre GM45 gold badges401 silver badges516 bronze badges

Huy hiệu vàng 19.2K354 Huy hiệu bạc65 Huy hiệu đồng
Python 3.8.1
Pandas 1.1.0
At this point in time I used both the double \ backslash AND the r.

df.replace([r'\\'], [''], regex=True, inplace=True)

Cheers.

Sử dụng các biểu thức thông thường:Aug 15, 2020 at 1:10