Hướng dẫn can you use replace in python regex? - bạn có thể sử dụng thay thế trong python regex không?

Bài viết này mô tả cách thay thế các chuỗi trong Python.

  • Thay thế Subrings:
    print(s.replace('one', 'XXX'))
    # XXX two XXX two XXX
    
    print(s.replace('one', 'XXX', 2))
    # XXX two XXX two one
    
    8
    • Cách sử dụng cơ bản
    • Chỉ định số lượng 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
    • Thay thế nhiều chuỗi con khác nhau
    • Chuỗi hoán đổi
    • Thay thế ký tự mới
  • Thay thế nhiều ký tự khác nhau:
    print(s.replace('one', 'XXX').replace('two', 'YYY'))
    # XXX YYY XXX YYY XXX
    
    0
    • Cách sử dụng cơ bản
    • Chỉ định số lượng 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
  • Thay thế nhiều chuỗi con khác nhau
    • Cách sử dụng cơ bản
    • Chỉ định số lượng 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
    • Thay thế nhiều chuỗi con khác nhau
    • Chuỗi hoán đổi
  • Thay thế ký tự mới

Thay thế nhiều ký tự khác nhau:

print(s.replace('one', 'XXX').replace('two', 'YYY'))
# XXX YYY XXX YYY XXX
0

  • Trao đổi ký tự

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

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

Thay thế Subrings: print(s.replace('one', 'XXX')) # XXX two XXX two XXX print(s.replace('one', 'XXX', 2)) # XXX two XXX two one 8

Cách sử dụng cơ bản

Chỉ định số lượng 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

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

Chuỗi hoán đổi

s = 'one two one two one'

print(s.replace(' ', '-'))
# one-two-one-two-one

Thay thế ký tự mới

print(s.replace(' ', ''))
# onetwoonetwoone

Chỉ định số lượng 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

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

print(s.replace('one', 'XXX'))
# XXX two XXX two XXX

print(s.replace('one', 'XXX', 2))
# XXX two XXX two one

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

Chuỗi hoán đổi

Thay thế ký tự mới

print(s.replace('one', 'XXX').replace('two', 'YYY'))
# XXX YYY XXX YYY XXX

Thay thế nhiều ký tự khác nhau:

print(s.replace('one', 'XXX').replace('two', 'YYY'))
# XXX YYY XXX YYY XXX
0

print(s.replace('one', 'XtwoX').replace('two', 'YYY'))
# XYYYX YYY XYYYX YYY XYYYX

print(s.replace('two', 'YYY').replace('one', 'XtwoX'))
# XtwoX YYY XtwoX YYY XtwoX

Trao đổi ký tự

Chuỗi hoán đổi

Thay thế ký tự mới

print(s.replace('one', 'two').replace('two', 'one'))
# one one one one one

Thay thế nhiều ký tự khác nhau:

print(s.replace('one', 'XXX').replace('two', 'YYY'))
# XXX YYY XXX YYY XXX
0

print(s.replace('one', 'X').replace('two', 'one').replace('X', 'two'))
# two one two one two

Trao đổi ký tự

def swap_str(s_org, s1, s2, temp='*q@w-e~r^'):
    return s_org.replace(s1, temp).replace(s2, s1).replace(temp, s2)

print(swap_str(s, 'one', 'two'))
# two one two one two

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

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

Thay thế ký tự mới

Thay thế nhiều ký tự khác nhau:

print(s.replace('one', 'XXX').replace('two', 'YYY'))
# XXX YYY XXX YYY XXX
0

s_lines = 'one\ntwo\nthree'
print(s_lines)
# one
# two
# three

print(s_lines.replace('\n', '-'))
# one-two-three

Trao đổi ký tự

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

print(s_lines_multi.splitlines())
# ['one', 'two', 'three']

print('-'.join(s_lines_multi.splitlines()))
# one-two-three

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

  • Thay thế bằng cách sử dụng phần phù hợp

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

Cách sử dụng cơ bản

Trao đổi ký tự

  • 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
  • Thay thế nhiều chuỗi con bằng cùng một chuỗi

Thay thế bằng cách sử dụng phần phù hợp

Nhận số lượng các bộ phận thay thế

print(s.replace(' ', ''))
# onetwoonetwoone
0

Thay thế theo vị trí: Cắt lát

print(s.replace(' ', ''))
# onetwoonetwoone
1

Bạn cũng có thể loại bỏ chuỗi con bằng cách thay thế nó bằng một chuỗi trống

print(s.replace('one', 'XXX').replace('two', 'YYY'))
# XXX YYY XXX YYY XXX
3.

print(s.replace(' ', ''))
# onetwoonetwoone
2

Chỉ định số lượng 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

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

print(s.replace(' ', ''))
# onetwoonetwoone
3

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

Chuỗi hoán đổi

  • Thay thế ký tự mới

Cách sử dụng cơ bản

Trong

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

print(s.replace(' ', ''))
# onetwoonetwoone
4

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ượng 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

Bạn cũng có thể tạo một đối tượng mẫu biểu thức thông thường với

s_lines = 'one\ntwo\nthree'
print(s_lines)
# one
# two
# three

print(s_lines.replace('\n', '-'))
# one-two-three
0 và gọi phương thức
def swap_str(s_org, s1, s2, temp='*q@w-e~r^'):
    return s_org.replace(s1, temp).replace(s2, s1).replace(temp, s2)

print(swap_str(s, 'one', 'two'))
# two one two one two
6. Điều này hiệu quả hơn nếu bạn muốn sử dụng cùng một mẫu biểu thức thông thường nhiều lần.

print(s.replace(' ', ''))
# onetwoonetwoone
6

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

Hai cái sau đây rất hữu ích để nhớ ngay cả khi bạn không quen thuộc với Regex.

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

s_lines = 'one\ntwo\nthree'
print(s_lines)
# one
# two
# three

print(s_lines.replace('\n', '-'))
# one-two-three
2 để phù hợp với bất kỳ ký tự 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

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

s_lines = 'one\ntwo\nthree'
print(s_lines)
# one
# two
# three

print(s_lines.replace('\n', '-'))
# one-two-three
3, nó phù hợ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 từng mẫu, nhưng nó ổn ngay cả khi chuỗi thông 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

Thay thế bằng cách sử dụng phần phù hợp

Nếu một phần của mẫu được đặt trong

s_lines = 'one\ntwo\nthree'
print(s_lines)
# one
# two
# three

print(s_lines.replace('\n', '-'))
# one-two-three
4, bạn có thể sử dụng một chuỗi phù hợp với phần được đặt trong
s_lines = 'one\ntwo\nthree'
print(s_lines)
# one
# two
# three

print(s_lines.replace('\n', '-'))
# one-two-three
4 trong chuỗi mới.

print(s.replace(' ', ''))
# onetwoonetwoone
9

Cần phải thoát

s_lines = 'one\ntwo\nthree'
print(s_lines)
# one
# two
# three

print(s_lines.replace('\n', '-'))
# one-two-three
6 như
s_lines = 'one\ntwo\nthree'
print(s_lines)
# one
# two
# three

print(s_lines.replace('\n', '-'))
# one-two-three
7 trong một chuỗi bình thường (
print(s.replace('one', 'XXX').replace('two', 'YYY'))
# XXX YYY XXX YYY XXX
3 hoặc
s_lines = 'one\ntwo\nthree'
print(s_lines)
# one
# two
# three

print(s_lines.replace('\n', '-'))
# one-two-three
9), nhưng bạn có thể viết
print(s_lines_multi.splitlines())
# ['one', 'two', 'three']

print('-'.join(s_lines_multi.splitlines()))
# one-two-three
0 trong một chuỗi thô (
print(s_lines_multi.splitlines())
# ['one', 'two', 'three']

print('-'.join(s_lines_multi.splitlines()))
# one-two-three
1 hoặc
print(s_lines_multi.splitlines())
# ['one', 'two', 'three']

print('-'.join(s_lines_multi.splitlines()))
# one-two-three
2).

  • Dây 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à đối số thứ hai của

def swap_str(s_org, s1, s2, temp='*q@w-e~r^'):
    return s_org.replace(s1, temp).replace(s2, s1).replace(temp, s2)

print(swap_str(s, 'one', 'two'))
# two one two one two
6. Đ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

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

  • Biểu cảm 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

Nhận số lượng các bộ phận thay thế

print(s.replace('one', 'XXX').replace('two', 'YYY'))
# XXX YYY XXX YYY XXX
2 Trả về một bộ của chuỗi thay thế và số lượng các bộ phận được thay thế.

  • Re.subn () - Hoạt động biểu thức thường xuyên - Python 3.10.8 Tài liệu

print(s.replace('one', 'XXX'))
# XXX two XXX two XXX

print(s.replace('one', 'XXX', 2))
# XXX two XXX two one
2

Việc sử dụng

print(s_lines_multi.splitlines())
# ['one', 'two', 'three']

print('-'.join(s_lines_multi.splitlines()))
# one-two-three
5 giống như
def swap_str(s_org, s1, s2, temp='*q@w-e~r^'):
    return s_org.replace(s1, temp).replace(s2, s1).replace(temp, s2)

print(swap_str(s, 'one', 'two'))
# two one two one two
6. Bạn có thể sử dụng phần được nhóm bởi
s_lines = 'one\ntwo\nthree'
print(s_lines)
# one
# two
# three

print(s_lines.replace('\n', '-'))
# one-two-three
4 hoặc chỉ định số lượng 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

Thay thế theo vị trí: Cắt lát

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

Bằng cách chia chuỗi bằng một lá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í được 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

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

print(s_lines_multi.splitlines())
# ['one', 'two', 'three']

print('-'.join(s_lines_multi.splitlines()))
# one-two-three
8, do đó nó có thể được viết như sau:

  • Nhận độ dài của một chuỗi (số lượng 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

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

print(s.replace('one', 'XXX'))
# XXX two XXX two XXX

print(s.replace('one', 'XXX', 2))
# XXX two XXX two one
6

Bạn cũng có thể tạo một chuỗi mới bằng cách chèn một chuỗi khác ở bất cứ đâu trong chuỗi.

print(s.replace('one', 'XXX'))
# XXX two XXX two XXX

print(s.replace('one', 'XXX', 2))
# XXX two XXX two one
7

Xem bài viết sau đây để biết chi tiết về cắt lát.

  • Cách cắt một danh sách, chuỗi, tuple trong Python

Tôi có thể sử dụng regex trong thay thế không?

Regex. Thay thế (chuỗi, chuỗi, phương thức MatchEvalUator, regexoptions) hữu ích để thay thế một biểu thức phù hợp thông thường nếu bất kỳ điều kiện nào sau đây là đúng: nếu chuỗi thay thế không thể được chỉ định bằng mẫu thay thế biểu thức chính quy.

Làm thế nào để bạn thay thế tất cả các lần xuất hiện của một mẫu regex trong một chuỗi trong python?

Phương thức Sub () sẽ thay thế tất cả các lần xuất hiện trong chuỗi đích.Bằng cách đặt số lượng = 1 bên trong một re.sub () chúng ta chỉ có thể thay thế lần xuất hiện đầu tiên của một mẫu trong chuỗi đích bằng một chuỗi khác.Đặt giá trị đếm thành số lượng thay thế bạn muốn thực hiện. will replace all pattern occurrences in the target string. By setting the count=1 inside a re. sub() we can replace only the first occurrence of a pattern in the target string with another string. Set the count value to the number of replacements you want to perform.

Có phải thay thế công việc với các chuỗi trong Python?

Thay thế () Phương thức Python, bạn có thể thay thế mọi phiên bản của một ký tự cụ thể bằng một ký tự mới.Bạn thậm chí có thể thay thế toàn bộ chuỗi văn bản bằng một dòng văn bản mới mà bạn chỉ định.Phương thức .replace () trả về một bản sao của một chuỗi.The . replace() method returns a copy of a string.

Bạn có thể sử dụng thay thế trong chức năng trong Python không?

Phương thức python String thay thế () Phương thức thay thế () thay thế một cụm từ được chỉ định bằng một cụm từ được chỉ định khác.Lưu ý: Tất cả các lần xuất hiện của cụm từ được chỉ định sẽ được thay thế, nếu không có gì khác được chỉ định.The replace() method replaces a specified phrase with another specified phrase. Note: All occurrences of the specified phrase will be replaced, if nothing else is specified.