Ví dụ thay thế regex python

Trong bài viết này, sẽ tìm hiểu cách sử dụng biểu thức chính quy để thực hiện các thao tác tìm kiếm và thay thế trên chuỗi trong Python

Python regex cung cấp target_string = "Jessa knows testing and machine learning"4 phương pháp target_string = "Jessa knows testing and machine learning"5 để tìm kiếm và thay thế các mẫu trong một chuỗi. Sử dụng các phương thức này, chúng ta có thể thay thế một hoặc nhiều lần xuất hiện của mẫu biểu thức chính quy trong chuỗi đích bằng một chuỗi thay thế

Sau khi đọc bài viết này, bạn sẽ có thể thực hiện các thao tác thay thế biểu thức chính quy sau trong Python

Hoạt độngMô tảtarget_string = "Jessa knows testing and machine learning"6Tìm và thay thế tất cả các lần xuất hiện của target_string = "Jessa knows testing and machine learning"7 bằng target_string = "Jessa knows testing and machine learning"8target_string = "Jessa knows testing and machine learning"9Tìm và chỉ thay thế các lần xuất hiện đầu tiên của target_string = "Jessa knows testing and machine learning"7 bằng target_string = "Jessa knows testing and machine learning"8import re target_str = "Jessa knows testing and machine learning" res_str = re.sub(r"\s", "_", target_str) # String after replacement print(res_str) # Output 'Jessa_knows_testing_and_machine_learning'2Tìm và thay thế các lần xuất hiện đầu tiên của import re target_str = "Jessa knows testing and machine learning" res_str = re.sub(r"\s", "_", target_str) # String after replacement print(res_str) # Output 'Jessa_knows_testing_and_machine_learning'3 của target_string = "Jessa knows testing and machine learning"7 bằng các hoạt động thay thế biểu thức chính quy của target_string = "Jessa knows testing and machine learning"8Python

Trước khi tiếp tục, hãy xem cú pháp của phương thức target_string = "Jessa knows testing and machine learning"4

Mục lục

Cách sử dụng phương pháp import re target_str = "Jessa knows testing and machine learning" res_str = re.sub(r"\s", "_", target_str) # String after replacement print(res_str) # Output 'Jessa_knows_testing_and_machine_learning'7

Để hiểu cách sử dụng import re target_str = "Jessa knows testing and machine learning" res_str = re.sub(r"\s", "_", target_str) # String after replacement print(res_str) # Output 'Jessa_knows_testing_and_machine_learning'7 để thay thế regex, trước tiên chúng ta cần hiểu cú pháp của nó

Cú pháp của lại. phụ()

re.sub(pattern, replacement, string[, count, flags])

Mẫu biểu thức chính quy, thay thế và chuỗi đích là các đối số bắt buộc. Số lượng và cờ là tùy chọn

  • target_string = "Jessa knows testing and machine learning"7. Mẫu biểu thức chính quy để tìm bên trong chuỗi đích
  • thay thế. Sự thay thế mà chúng ta sẽ chèn cho mỗi lần xuất hiện của một mẫu. target_string = "Jessa knows testing and machine learning"8 có thể là một chuỗi hoặc hàm
  • import re target_str = " Jessa Knows Testing And Machine Learning \t ." # \s+ to remove all spaces # + indicate 1 or more occurrence of a space res_str = re.sub(r"\s+", "", target_str) # String after replacement print(res_str) # Output 'JessaKnowsTestingAndMachineLearning.'1. Biến trỏ đến chuỗi đích (Trong đó chúng tôi muốn thực hiện thay thế)
  • import re target_str = " Jessa Knows Testing And Machine Learning \t ." # \s+ to remove all spaces # + indicate 1 or more occurrence of a space res_str = re.sub(r"\s+", "", target_str) # String after replacement print(res_str) # Output 'JessaKnowsTestingAndMachineLearning.'2. Số lần xuất hiện mẫu tối đa được thay thế. import re target_str = " Jessa Knows Testing And Machine Learning \t ." # \s+ to remove all spaces # + indicate 1 or more occurrence of a space res_str = re.sub(r"\s+", "", target_str) # String after replacement print(res_str) # Output 'JessaKnowsTestingAndMachineLearning.'2 phải luôn là số nguyên dương nếu được chỉ định. . Theo mặc định, import re target_str = " Jessa Knows Testing And Machine Learning \t ." # \s+ to remove all spaces # + indicate 1 or more occurrence of a space res_str = re.sub(r"\s+", "", target_str) # String after replacement print(res_str) # Output 'JessaKnowsTestingAndMachineLearning.'2 được đặt thành 0, có nghĩa là phương thức import re target_str = "Jessa knows testing and machine learning" res_str = re.sub(r"\s", "_", target_str) # String after replacement print(res_str) # Output 'Jessa_knows_testing_and_machine_learning'7 sẽ thay thế tất cả các lần xuất hiện mẫu trong chuỗi mục tiêu
  • import re target_str = " Jessa Knows Testing And Machine Learning \t ." # \s+ to remove all spaces # + indicate 1 or more occurrence of a space res_str = re.sub(r"\s+", "", target_str) # String after replacement print(res_str) # Output 'JessaKnowsTestingAndMachineLearning.'6. Cuối cùng, đối số cuối cùng là tùy chọn và đề cập đến cờ regex. Theo mặc định, không có cờ nào được áp dụng
    Có nhiều giá trị cờ chúng ta có thể sử dụng. Ví dụ: import re target_str = " Jessa Knows Testing And Machine Learning \t ." # \s+ to remove all spaces # + indicate 1 or more occurrence of a space res_str = re.sub(r"\s+", "", target_str) # String after replacement print(res_str) # Output 'JessaKnowsTestingAndMachineLearning.'7 được sử dụng để thực hiện tìm kiếm và thay thế không phân biệt chữ hoa chữ thường

Giá trị trả về

Nó trả về chuỗi thu được bằng cách thay thế các lần xuất hiện mẫu trong chuỗi bằng chuỗi thay thế. Nếu không tìm thấy mẫu, chuỗi được trả về không thay đổi

Bây giờ, hãy kiểm tra điều này

Ví dụ về Regex để thay thế tất cả khoảng trắng bằng dấu gạch dưới

Bây giờ, hãy xem cách sử dụng import re target_str = "Jessa knows testing and machine learning" res_str = re.sub(r"\s", "_", target_str) # String after replacement print(res_str) # Output 'Jessa_knows_testing_and_machine_learning'7 với sự trợ giúp của một ví dụ đơn giản. Ở đây, chúng ta sẽ thực hiện hai thao tác thay thế

  1. Thay thế tất cả khoảng trắng bằng dấu gạch nối
  2. Xóa tất cả các khoảng trắng

Trước tiên hãy xem kịch bản đầu tiên

Mẫu để thay thế. import re target_str = " Jessa Knows Testing And Machine Learning \t ." # \s+ to remove all spaces # + indicate 1 or more occurrence of a space res_str = re.sub(r"\s+", "", target_str) # String after replacement print(res_str) # Output 'JessaKnowsTestingAndMachineLearning.'9

Trong ví dụ này, chúng tôi sẽ sử dụng chuỗi đặc biệt của biểu thức chính quy import re target_str = " Jessa Knows Testing And Machine Learning \t ." # \s+ to remove all spaces # + indicate 1 or more occurrence of a space res_str = re.sub(r"\s+", "", target_str) # String after replacement print(res_str) # Output 'JessaKnowsTestingAndMachineLearning.'9 khớp với bất kỳ ký tự khoảng trắng nào, viết tắt của import re target_str = " Jessa Knows Testing And Machine Learning \t ." # ^\s+ remove only leading spaces # caret (^) matches only at the start of the string res_str = re.sub(r"^\s+", "", target_str) # String after replacement print(res_str) # Output 'Jessa Knows Testing And Machine Learning .'1

Giả sử bạn có chuỗi sau và bạn muốn thay thế tất cả khoảng trắng bằng dấu gạch dưới

target_string = "Jessa knows testing and machine learning"

Thí dụ

________số 8_______

Regex để xóa khoảng trắng khỏi chuỗi

Bây giờ, hãy chuyển sang kịch bản thứ hai, nơi bạn có thể xóa tất cả khoảng trắng khỏi chuỗi bằng regex. Hoạt động loại bỏ regex này bao gồm bốn trường hợp sau

  1. Xóa tất cả khoảng trắng, bao gồm một hoặc nhiều khoảng trắng ( mẫu cần xóa import re target_str = " Jessa Knows Testing And Machine Learning \t ." # ^\s+ remove only leading spaces # caret (^) matches only at the start of the string res_str = re.sub(r"^\s+", "", target_str) # String after replacement print(res_str) # Output 'Jessa Knows Testing And Machine Learning .'2 )
  2. Xóa khoảng trắng ở đầu ( mẫu cần xóa import re target_str = " Jessa Knows Testing And Machine Learning \t ." # ^\s+ remove only leading spaces # caret (^) matches only at the start of the string res_str = re.sub(r"^\s+", "", target_str) # String after replacement print(res_str) # Output 'Jessa Knows Testing And Machine Learning .'3 )
  3. Xóa dấu cách ( mẫu để xóa import re target_str = " Jessa Knows Testing And Machine Learning \t ." # ^\s+ remove only leading spaces # caret (^) matches only at the start of the string res_str = re.sub(r"^\s+", "", target_str) # String after replacement print(res_str) # Output 'Jessa Knows Testing And Machine Learning .'4 )
  4. Xóa cả khoảng trắng ở đầu và cuối. (mẫu cần xóa  import re target_str = " Jessa Knows Testing And Machine Learning \t ." # ^\s+ remove only leading spaces # caret (^) matches only at the start of the string res_str = re.sub(r"^\s+", "", target_str) # String after replacement print(res_str) # Output 'Jessa Knows Testing And Machine Learning .'5 )

ví dụ 1. Xóa tất cả khoảng trắng

import re target_str = " Jessa Knows Testing And Machine Learning \t ." # \s+ to remove all spaces # + indicate 1 or more occurrence of a space res_str = re.sub(r"\s+", "", target_str) # String after replacement print(res_str) # Output 'JessaKnowsTestingAndMachineLearning.'

ví dụ 2. Loại bỏ không gian hàng đầu

import re target_str = " Jessa Knows Testing And Machine Learning \t ." # ^\s+ remove only leading spaces # caret (^) matches only at the start of the string res_str = re.sub(r"^\s+", "", target_str) # String after replacement print(res_str) # Output 'Jessa Knows Testing And Machine Learning .'

ví dụ 3. Xóa dấu cách

import re target_str = " Jessa Knows Testing And Machine Learning \t\n" # ^\s+$ remove only trailing spaces # dollar ($) matches spaces only at the end of the string res_str = re.sub(r"\s+$", "", target_str) # String after replacement print(res_str) # Output ' Jessa Knows Testing And Machine Learning'

Ví dụ 4. Xóa cả khoảng trắng ở đầu và cuối

import re target_str = " Jessa Knows Testing And Machine Learning \t\n" # ^\s+ remove leading spaces # ^\s+$ removes trailing spaces # | operator to combine both patterns res_str = re.sub(r"^\s+|\s+$", "", target_str) # String after replacement print(res_str) # Output 'Jessa Knows Testing And Machine Learning'

Thay thế nhiều khoảng trắng bằng một khoảng trắng bằng regex

import re target_str = "Jessa Knows Testing And Machine Learning \t \n" # \s+ to match all whitespaces # replace them using single space " " res_str = re.sub(r"\s+", " ", target_str) # string after replacement print(res_str) # Output 'Jessa Knows Testing And Machine Learning'

Giới hạn số lần xuất hiện mẫu tối đa được thay thế

Như tôi đã nói với bạn, đối số import re target_str = " Jessa Knows Testing And Machine Learning \t ." # \s+ to remove all spaces # + indicate 1 or more occurrence of a space res_str = re.sub(r"\s+", "", target_str) # String after replacement print(res_str) # Output 'JessaKnowsTestingAndMachineLearning.'2 của phương thức import re target_str = "Jessa knows testing and machine learning" res_str = re.sub(r"\s", "_", target_str) # String after replacement print(res_str) # Output 'Jessa_knows_testing_and_machine_learning'7 là tùy chọn. Đối số đếm sẽ đặt số lần thay thế tối đa mà chúng tôi muốn thực hiện bên trong chuỗi. Theo mặc định, import re target_str = " Jessa Knows Testing And Machine Learning \t ." # \s+ to remove all spaces # + indicate 1 or more occurrence of a space res_str = re.sub(r"\s+", "", target_str) # String after replacement print(res_str) # Output 'JessaKnowsTestingAndMachineLearning.'2 được đặt thành 0, có nghĩa là phương thức import re target_str = "Jessa knows testing and machine learning" res_str = re.sub(r"\s", "_", target_str) # String after replacement print(res_str) # Output 'Jessa_knows_testing_and_machine_learning'7 sẽ thay thế tất cả các lần xuất hiện mẫu trong chuỗi mục tiêu

Chỉ thay thế những lần xuất hiện đầu tiên của một mẫu

Bằng cách đặt import re target_str = " Jessa Knows Testing And Machine Learning \t\n" # ^\s+$ remove only trailing spaces # dollar ($) matches spaces only at the end of the string res_str = re.sub(r"\s+$", "", target_str) # String after replacement print(res_str) # Output ' Jessa Knows Testing And Machine Learning'0 bên trong một import re target_str = "Jessa knows testing and machine learning" res_str = re.sub(r"\s", "_", target_str) # String after replacement print(res_str) # Output 'Jessa_knows_testing_and_machine_learning'7, 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 mục tiêu bằng một chuỗi khác

Thay thế n lần xuất hiện của một mẫu

Đặt giá trị đếm thành số lần thay thế bạn muốn thực hiện

Bây giờ hãy xem ví dụ

Thí dụ

import re # original string target_str = "Jessa knows testing and machine learning" # replace only first occurrence res_str = re.sub(r"\s", "-", target_str, count=1) # String after replacement print(res_str) # Output 'Jessa-knows testing and machine learning' # replace three occurrence res_str = re.sub(r"\s", "-", target_str, count=3) print(res_str) # Output 'Jessa-knows-testing-and machine learning'

Hàm thay thế Regex

Chúng ta đã thấy cách tìm và thay thế mẫu biểu thức chính quy bằng một chuỗi cố định trong ví dụ trước. Trong ví dụ này, chúng ta thấy cách thay thế một mẫu bằng đầu ra của hàm

Ví dụ bạn muốn thay thế tất cả các chữ hoa bằng một chữ thường. Để đạt được điều này, chúng ta cần hai điều sau đây

  • Một mẫu biểu thức chính quy khớp với tất cả các chữ cái viết hoa
  • và chức năng thay thế sẽ chuyển đổi chữ hoa phù hợp thành chữ thường

Mẫu để thay thế. import re target_str = " Jessa Knows Testing And Machine Learning \t\n" # ^\s+$ remove only trailing spaces # dollar ($) matches spaces only at the end of the string res_str = re.sub(r"\s+$", "", target_str) # String after replacement print(res_str) # Output ' Jessa Knows Testing And Machine Learning'2

Mẫu này sẽ khớp với bất kỳ chữ cái viết hoa nào bên trong chuỗi mục tiêu

chức năng thay thế

Bạn có thể chuyển một hàm tới import re target_str = " Jessa Knows Testing And Machine Learning \t\n" # ^\s+$ remove only trailing spaces # dollar ($) matches spaces only at the end of the string res_str = re.sub(r"\s+$", "", target_str) # String after replacement print(res_str) # Output ' Jessa Knows Testing And Machine Learning'3. Khi bạn thực thi import re target_str = "Jessa knows testing and machine learning" res_str = re.sub(r"\s", "_", target_str) # String after replacement print(res_str) # Output 'Jessa_knows_testing_and_machine_learning'7  hàm của bạn sẽ nhận một đối tượng khớp làm đối số. Nếu có thể thực hiện thao tác thay thế bằng cách trích xuất giá trị khớp từ một đối tượng khớp

Nếu một thay thế là một chức năng, nó được gọi cho mọi lần xuất hiện mẫu không chồng chéo. Hàm nhận một đối số đối tượng khớp duy nhất và trả về chuỗi thay thế

Vì vậy, trong trường hợp của chúng tôi, chúng tôi sẽ làm như sau

  • Đầu tiên chúng ta cần tạo hàm thay thế chữ hoa bằng chữ thường
  • Tiếp theo, chúng ta cần chuyển hàm này làm đối số thay thế cho import re target_str = "Jessa knows testing and machine learning" res_str = re.sub(r"\s", "_", target_str) # String after replacement print(res_str) # Output 'Jessa_knows_testing_and_machine_learning'7
  • Bất cứ khi nào import re target_str = "Jessa knows testing and machine learning" res_str = re.sub(r"\s", "_", target_str) # String after replacement print(res_str) # Output 'Jessa_knows_testing_and_machine_learning'7 khớp với mẫu, Nó sẽ gửi đối tượng khớp tương ứng đến chức năng thay thế
  • Bên trong một hàm thay thế, chúng ta sẽ sử dụng phương thức group() để trích xuất một chữ hoa và chuyển nó thành chữ thường

Thí dụ

import re # replacement function to convert uppercase letter to lowercase def convert_to_lower(match_obj): if match_obj.group() is not None: return match_obj.group().lower() # Original String str = "Emma LOves PINEAPPLE DEssert and COCONUT Ice Cream" # pass replacement function to re.sub() res_str = re.sub(r"[A-Z]", convert_to_lower, str) # String after replacement print(res_str) # Output 'Emma loves pineapple dessert and coconut Ice Cream'

Regex thay thế nhóm/nhiều mẫu regex

Chúng ta đã thấy cách tìm và thay thế mẫu biểu thức chính quy đơn lẻ trong các ví dụ trước đó. Trong phần này, chúng ta sẽ tìm hiểu cách tìm kiếm và thay thế nhiều mẫu trong chuỗi mục tiêu

Để hiểu điều này, hãy lấy ví dụ về chuỗi sau

import re target_str = " Jessa Knows Testing And Machine Learning \t\n" # ^\s+$ remove only trailing spaces # dollar ($) matches spaces only at the end of the string res_str = re.sub(r"\s+$", "", target_str) # String after replacement print(res_str) # Output ' Jessa Knows Testing And Machine Learning'7

Ở đây, chúng tôi muốn tìm và thay thế hai mẫu riêng biệt cùng một lúc

Chúng tôi muốn thay thế từng khoảng trắng và dấu gạch nối (-) bằng dấu phẩy (,) bên trong chuỗi mục tiêu. Để đạt được điều này, trước tiên chúng ta phải viết hai mẫu biểu thức chính quy

  1. mẫu 1. import re target_str = " Jessa Knows Testing And Machine Learning \t ." # \s+ to remove all spaces # + indicate 1 or more occurrence of a space res_str = re.sub(r"\s+", "", target_str) # String after replacement print(res_str) # Output 'JessaKnowsTestingAndMachineLearning.'9 phù hợp với tất cả các khoảng trắng
  2. mẫu 2. import re target_str = " Jessa Knows Testing And Machine Learning \t\n" # ^\s+$ remove only trailing spaces # dollar ($) matches spaces only at the end of the string res_str = re.sub(r"\s+$", "", target_str) # String after replacement print(res_str) # Output ' Jessa Knows Testing And Machine Learning'9  khớp với dấu gạch nối (-)

Thí dụ

target_string = "Jessa knows testing and machine learning"0

Thay thế nhiều mẫu regex bằng thay thế khác nhau

Để hiểu điều này, hãy lấy ví dụ về chuỗi sau

import re target_str = " Jessa Knows Testing And Machine Learning \t\n" # ^\s+ remove leading spaces # ^\s+$ removes trailing spaces # | operator to combine both patterns res_str = re.sub(r"^\s+|\s+$", "", target_str) # String after replacement print(res_str) # Output 'Jessa Knows Testing And Machine Learning' 0

Chuỗi trên chứa sự kết hợp của chữ hoa và chữ thường

Ở đây, chúng tôi muốn khớp và thay thế hai mẫu riêng biệt bằng hai thay thế khác nhau

  1. Thay thế mỗi từ viết hoa bằng một chữ thường
  2. Và thay thế từng chữ thường bằng chữ hoa

Vì vậy, trước tiên chúng tôi sẽ chụp hai nhóm và sau đó thay thế từng nhóm bằng chức năng thay thế. Nếu bạn chưa biết chức năng thay thế vui lòng đọc tại đây

Nhóm 1. ([A-Z]+)

  • Để nắm bắt và thay thế tất cả các từ viết hoa bằng chữ thường
  • Lớp ký tự [A-Z] có nghĩa là, bất kỳ ký tự nào từ chữ A viết hoa đến Z viết hoa hoàn toàn

nhóm 2. ([a-z]+)

  • Để nắm bắt và thay thế tất cả từ chữ thường bằng chữ hoa
  • [a-z] lớp ký tự có nghĩa là, khớp bất kỳ ký tự nào từ chữ hoa thường a đến z bằng chữ thường

Ghi chú. Bất cứ khi nào bạn muốn chụp các nhóm, hãy luôn viết chúng trong ngoặc đơn import re target_str = " Jessa Knows Testing And Machine Learning \t\n" # ^\s+ remove leading spaces # ^\s+$ removes trailing spaces # | operator to combine both patterns res_str = re.sub(r"^\s+|\s+$", "", target_str) # String after replacement print(res_str) # Output 'Jessa Knows Testing And Machine Learning' 1, import re target_str = " Jessa Knows Testing And Machine Learning \t\n" # ^\s+ remove leading spaces # ^\s+$ removes trailing spaces # | operator to combine both patterns res_str = re.sub(r"^\s+|\s+$", "", target_str) # String after replacement print(res_str) # Output 'Jessa Knows Testing And Machine Learning' 2

Thí dụ

target_string = "Jessa knows testing and machine learning"1

Phương thức subn() của RE

Phương thức import re target_str = " Jessa Knows Testing And Machine Learning \t\n" # ^\s+ remove leading spaces # ^\s+$ removes trailing spaces # | operator to combine both patterns res_str = re.sub(r"^\s+|\s+$", "", target_str) # String after replacement print(res_str) # Output 'Jessa Knows Testing And Machine Learning' 3 là phương thức mới, mặc dù nó thực hiện nhiệm vụ tương tự như phương thức import re target_str = "Jessa knows testing and machine learning" res_str = re.sub(r"\s", "_", target_str) # String after replacement print(res_str) # Output 'Jessa_knows_testing_and_machine_learning'7 nhưng kết quả nó trả về hơi khác một chút

Phương thức import re target_str = " Jessa Knows Testing And Machine Learning \t\n" # ^\s+ remove leading spaces # ^\s+$ removes trailing spaces # | operator to combine both patterns res_str = re.sub(r"^\s+|\s+$", "", target_str) # String after replacement print(res_str) # Output 'Jessa Knows Testing And Machine Learning' 3 trả về một bộ gồm hai phần tử

  1. Phần tử đầu tiên của kết quả là phiên bản mới của chuỗi đích sau khi tất cả các thay thế đã được thực hiện
  2. Yếu tố thứ hai là số lần thay thế nó đã thực hiện

Hãy kiểm tra điều này bằng ví dụ tương tự như trước và chỉ thay thế phương thức

Thí dụ

target_string = "Jessa knows testing and machine learning"2

Ghi chú. Ghi chú. Tôi đã không thay đổi bất cứ điều gì trong mẫu biểu thức chính quy và chuỗi kết quả vẫn như cũ, chỉ có điều lần này nó được đưa vào một bộ như là phần tử đầu tiên của bộ đó. Sau đó, sau dấu phẩy, chúng tôi có số lần thay thế được thực hiện và đó là ba

Chúng ta cũng có thể sử dụng đối số đếm của phương thức target_string = "Jessa knows testing and machine learning"5. Vì vậy, giá trị của phần tử thứ hai của bộ kết quả sẽ thay đổi tương ứng

Chủ đề