Làm thế nào để bạn thay thế một từ trong một chuỗi trong python?

Chỉ định chuỗi cũ

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
6 cho đối số đầu tiên và chuỗi mới
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
7 cho đối số thứ hai

s = 'one two one two one'

print[s.replace[' ', '-']]
# one-two-one-two-one

nguồn.

Bạn có thể loại bỏ

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
6 bằng cách chỉ định
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
7 là chuỗi rỗng
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
3

print[s.replace[' ', '']]
# onetwoonetwoone

nguồn.

Chỉ định số lần thay thế tối đa.
print[s.replace['one', 'XXX']]
# XXX two XXX two XXX

print[s.replace['one', 'XXX', 2]]
# XXX two XXX two one
9

Bạn có thể chỉ định số lần thay thế tối đa trong tham số thứ ba,

print[s.replace['one', 'XXX']]
# XXX two XXX two XXX

print[s.replace['one', 'XXX', 2]]
# XXX two XXX two one
9. Nếu
print[s.replace['one', 'XXX']]
# XXX two XXX two XXX

print[s.replace['one', 'XXX', 2]]
# XXX two XXX two one
9 được đưa ra, chỉ những lần xuất hiện đầu tiên của
print[s.replace['one', 'XXX']]
# XXX two XXX two XXX

print[s.replace['one', 'XXX', 2]]
# XXX two XXX two one
9 mới được thay thế

print[s.replace['one', 'XXX']]
# XXX two XXX two XXX

print[s.replace['one', 'XXX', 2]]
# XXX two XXX two one

nguồn.

Thay thế nhiều chuỗi con khác nhau

Để thay thế nhiều chuỗi khác nhau bằng cùng một chuỗi, hãy sử dụng các biểu thức chính quy như được mô tả bên dưới

Không có phương pháp nào để thay thế nhiều chuỗi khác nhau bằng các chuỗi khác nhau, nhưng bạn có thể áp dụng liên tục

print[s.replace['one', 'XXX']]
# XXX two XXX two XXX

print[s.replace['one', 'XXX', 2]]
# XXX two XXX two one
8

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX

nguồn.

Nó chỉ gọi

print[s.replace['one', 'XXX']]
# XXX two XXX two XXX

print[s.replace['one', 'XXX', 2]]
# XXX two XXX two one
8 theo thứ tự, vì vậy nếu
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
7 đầu tiên chứa
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
6 theo sau, thì
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
7 đầu tiên cũng được thay thế

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
8

nguồn.

Để thay thế nhiều ký tự [chuỗi có độ dài

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
90], bạn có thể sử dụng phương pháp
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
0 được mô tả bên dưới

trao đổi chuỗi

Nếu bạn muốn hoán đổi hai chuỗi, việc thay thế chúng theo thứ tự như mô tả ở trên có thể không được

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
9

nguồn.

Đầu tiên, bạn nên thay thế nó bằng một chuỗi khác

s = 'one two one two one'

print[s.replace[' ', '-']]
# one-two-one-two-one
2

nguồn.

Hoạt động này có thể được biến thành một chức năng như sau

s = 'one two one two one'

print[s.replace[' ', '-']]
# one-two-one-two-one
3

nguồn.

Lưu ý rằng chức năng này không hoạt động nếu chuỗi tạm thời

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
92 được bao gồm trong chuỗi gốc. Nếu bạn muốn làm cho nó nghiêm ngặt, bạn cần kiểm tra xem chuỗi tạm thời
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
92 có được bao gồm trong chuỗi gốc hay không và nếu có, hãy sử dụng một chuỗi khác cho
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
92. Trong ví dụ trên,
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
92 được đặt thành một chuỗi không có ý nghĩa cụ thể

Để hoán đổi nhiều ký tự [chuỗi có độ dài

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
90], bạn có thể sử dụng phương pháp
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
0 được mô tả bên dưới

Thay thế ký tự xuống dòng

Nếu chuỗi chỉ chứa một loại ký tự xuống dòng, bạn có thể chỉ định nó làm đối số đầu tiên của

print[s.replace['one', 'XXX']]
# XXX two XXX two XXX

print[s.replace['one', 'XXX', 2]]
# XXX two XXX two one
8

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
1

nguồn.

Hãy cẩn thận nếu

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
99 [LF, được sử dụng trong hệ điều hành Unix bao gồm cả Mac] và
s = 'one two one two one'

print[s.replace[' ', '-']]
# one-two-one-two-one
20 [CR + LF, được sử dụng trong hệ điều hành Windows] được trộn lẫn. Vì
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
99 được bao gồm trong
s = 'one two one two one'

print[s.replace[' ', '-']]
# one-two-one-two-one
20, bạn không thể nhận được kết quả mong muốn tùy thuộc vào đơn đặt hàng

Bạn có thể sử dụng

s = 'one two one two one'

print[s.replace[' ', '-']]
# one-two-one-two-one
23, trả về một danh sách được chia với nhiều ký tự xuống dòng khác nhau và
s = 'one two one two one'

print[s.replace[' ', '-']]
# one-two-one-two-one
24, kết hợp danh sách với chuỗi. Cách này an toàn và được khuyên dùng, đặc biệt nếu bạn không biết những ký tự xuống dòng nào được bao gồm

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
8

nguồn.

Xem bài viết sau để biết các thao tác khác liên quan đến ngắt dòng trong chuỗi

  • Xử lý ngắt dòng [dòng mới] trong Python

Thay thế nhiều ký tự khác nhau.
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
0

sử dụng cơ bản

Sử dụng phương pháp

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
0 để thay thế nhiều ký tự khác nhau. Bạn có thể tạo bảng dịch được chỉ định trong
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
0 bởi
s = 'one two one two one'

print[s.replace[' ', '-']]
# one-two-one-two-one
28

Chỉ định một từ điển có khóa là ký tự cũ và có giá trị là chuỗi mới trong

s = 'one two one two one'

print[s.replace[' ', '-']]
# one-two-one-two-one
28

Ký tự cũ phải là ký tự [chuỗi có độ dài

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
90]. Chuỗi mới là một chuỗi hoặc
s = 'one two one two one'

print[s.replace[' ', '-']]
# one-two-one-two-one
31, trong đó
s = 'one two one two one'

print[s.replace[' ', '-']]
# one-two-one-two-one
31 loại bỏ các ký tự cũ

print[s.replace[' ', '']]
# onetwoonetwoone
0

nguồn.

Đối số đầu tiên là một chuỗi trong đó các ký tự cũ được nối với nhau, đối số thứ hai là một chuỗi trong đó các ký tự mới được nối với nhau và đối số thứ ba là một chuỗi trong đó các ký tự bị xóa được nối với nhau. Đối số thứ ba là tùy chọn

print[s.replace[' ', '']]
# onetwoonetwoone
1

nguồn.

Trong trường hợp này, độ dài của đối số thứ nhất và thứ hai phải khớp với nhau

print[s.replace[' ', '']]
# onetwoonetwoone
2

nguồn.

Hoán đổi ký tự

Bạn có thể hoán đổi ký tự với

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
0

print[s.replace[' ', '']]
# onetwoonetwoone
3

nguồn.

Liên kết được tài trợ

Thay thế bằng regex.
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
1,
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
2

Nếu bạn muốn thay thế một chuỗi khớp với biểu thức chính quy [regex] thay vì khớp hoàn hảo, hãy sử dụng

s = 'one two one two one'

print[s.replace[' ', '-']]
# one-two-one-two-one
36 của mô-đun re

sử dụng cơ bản

Trong

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
1, chỉ định một mẫu biểu thức chính quy trong đối số đầu tiên, một chuỗi mới trong đối số thứ hai và một chuỗi sẽ được xử lý trong đối số thứ ba

print[s.replace[' ', '']]
# onetwoonetwoone
4

nguồn.

Như với

print[s.replace['one', 'XXX']]
# XXX two XXX two XXX

print[s.replace['one', 'XXX', 2]]
# XXX two XXX two one
8, bạn có thể chỉ định số lần thay thế tối đa trong tham số thứ tư,
print[s.replace['one', 'XXX']]
# XXX two XXX two XXX

print[s.replace['one', 'XXX', 2]]
# XXX two XXX two one
9

print[s.replace[' ', '']]
# onetwoonetwoone
5

nguồn.

Bạn cũng có thể tạo đối tượng mẫu biểu thức chính quy bằng

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
10 và gọi phương thức
s = 'one two one two one'

print[s.replace[' ', '-']]
# one-two-one-two-one
36. Điều này hiệu quả hơn nếu bạn muốn sử dụng lặp đi lặp lại cùng một mẫu biểu thức chính quy

print[s.replace[' ', '']]
# onetwoonetwoone
6

nguồn.

Thay thế nhiều chuỗi con bằng cùng một chuỗi

Hai điều sau đây rất hữu ích để ghi nhớ ngay cả khi bạn không quen với biểu thức chính quy

Kèm theo một chuỗi với

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
12 để khớp với bất kỳ ký tự đơn nào trong đó. Bạn có thể thay thế nhiều ký tự khác nhau bằng cùng một chuỗi

print[s.replace[' ', '']]
# onetwoonetwoone
7

nguồn.

Nếu các mẫu được phân định bởi

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
13, thì nó khớp với bất kỳ mẫu nào. Tất nhiên, có thể sử dụng các ký tự đặc biệt của biểu thức chính quy cho mỗi mẫu, nhưng cũng không sao ngay cả khi chuỗi bình thường được chỉ định như vậy. Bạn có thể thay thế nhiều chuỗi khác nhau bằng cùng một chuỗi

print[s.replace[' ', '']]
# onetwoonetwoone
8

nguồn.

Thay thế bằng phần phù hợp

Nếu một phần của mẫu được đính kèm trong

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
14, bạn có thể sử dụng một chuỗi khớp với phần được đính kèm trong
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
14 trong chuỗi mới

print[s.replace[' ', '']]
# onetwoonetwoone
9

nguồn.

Cần thoát

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
16 giống như
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
17 trong chuỗi bình thường [
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
3 hoặc
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
19], nhưng bạn có thể viết
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
80 trong chuỗi thô [
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
81 hoặc
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
82]

  • Chuỗi thô trong Python

Bạn có thể chỉ định một hàm, lấy một đối tượng khớp làm đối số của nó, làm đối số thứ hai của

s = 'one two one two one'

print[s.replace[' ', '-']]
# one-two-one-two-one
36. Điều này cho phép các hoạt động phức tạp hơn

print[s.replace['one', 'XXX']]
# XXX two XXX two XXX

print[s.replace['one', 'XXX', 2]]
# XXX two XXX two one
0

nguồn.

Bạn có thể sử dụng biểu thức lambda

  • Biểu thức Lambda trong Python

print[s.replace['one', 'XXX']]
# XXX two XXX two XXX

print[s.replace['one', 'XXX', 2]]
# XXX two XXX two one
1

nguồn.

Lấy số lượng các bộ phận được thay thế

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
2 trả về một bộ chuỗi đã thay thế và số phần được thay thế

print[s.replace['one', 'XXX']]
# XXX two XXX two XXX

print[s.replace['one', 'XXX', 2]]
# XXX two XXX two one
2

nguồn.

Việc sử dụng

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
85 cũng giống như
s = 'one two one two one'

print[s.replace[' ', '-']]
# one-two-one-two-one
36. Bạn có thể sử dụng bộ phận được nhóm bởi
print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
14 hoặc chỉ định số lượng bộ phận thay thế tối đa

print[s.replace['one', 'XXX']]
# XXX two XXX two XXX

print[s.replace['one', 'XXX', 2]]
# XXX two XXX two one
3

nguồn.

Thay thế theo vị trí. lát cắt

Không có phương pháp để thay thế chuỗi tại vị trí đã chỉ định

Bằng cách tách chuỗi bằng một lát cắt và nối chúng với một chuỗi khác, bạn có thể tạo một chuỗi mới với vị trí đã chỉ định được thay thế

print[s.replace['one', 'XXX']]
# XXX two XXX two XXX

print[s.replace['one', 'XXX', 2]]
# XXX two XXX two one
4

nguồn.

Độ dài của chuỗi [số ký tự] có thể được lấy bằng

print[s.replace['one', 'XXX'].replace['two', 'YYY']]
# XXX YYY XXX YYY XXX
88, vì vậy nó có thể được viết như sau

  • Lấy độ dài của một chuỗi [số ký tự] trong Python

print[s.replace['one', 'XXX']]
# XXX two XXX two XXX

print[s.replace['one', 'XXX', 2]]
# XXX two XXX two one
5

nguồn.

Số lượng ký tự không nhất thiết phải khớp, vì nó chỉ nối các chuỗi khác nhau giữa các chuỗi được phân tách

Chủ Đề