Thay thế nhiều phần tử trong mảng javascript

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
6 đầu tiên là một nhóm chụp, có nghĩa là tìm phần đầu của chuỗi [
regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
7] hoặc một
regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
8. Sau đó, có văn bản bạn quan tâm và cuối cùng, một nhóm chụp khác
regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
9 tìm thấy một
regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
8 hoặc phần cuối của chuỗi [
regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
1]

Với biểu thức này, nó sẽ tìm thấy

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
2,
regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
0,
regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
1,
regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
2 nhưng KHÔNG tìm thấy
regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
3

Khi thay thế chuỗi tìm thấy, bạn phải bao gồm hai nhóm tìm kiếm trong văn bản được thay thế, sử dụng

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
4 và
regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
5

Đối với một văn bản duy nhất được thay thế, biểu thức trở thành

regexp_replace[myColumn,'[^|,]15.1[,|$]','\\1string1\\2'],'[^|,]

Để có nhiều thay thế, bạn có thể lồng các lệnh gọi tới

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
6, chẳng hạn như

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]

Hoặc nếu có nhiều bạn có thể tạo hàm thay thế X lần lượt. Nó sẽ sạch hơn và dễ bảo trì hơn, như trong câu trả lời @fastest

Bạn có biết rằng Chuỗi là đối tượng bất biến trong Python không? . Do đó nảy sinh nhu cầu sử dụng các hàm khác nhau để có thể thao tác trên chuỗi. Trong bài viết này, chúng ta sẽ tìm hiểu cách thay thế nhiều ký tự trong một chuỗi trong python

Trước khi tiếp tục, hãy tìm hiểu một chút về Strings

Chuỗi là gì?

Trong Python, mọi thứ đều là đối tượng. Các chuỗi cũng là các đối tượng Python, nhưng chúng thường được định nghĩa là một chuỗi các ký tự được đặt giữa các dấu ngoặc kép [ ' ' hoặc " " ]. Các ký tự này có thể là a-z, A-Z, 0-9 hoặc ký tự đặc biệt [như $, %] và khoảng trắng [' ']

Bạn có ý nghĩa gì khi thay thế nhiều ký tự trong một chuỗi?

Nhu cầu thay thế một vài ký tự [có thể là một hoặc nhiều ký tự] từ một chuỗi thường xuất hiện khi xử lý sự cố. Nhưng câu hỏi đặt ra là bạn hiểu thế nào là thay thế nhiều ký tự trong một chuỗi?

Chuỗi có nhiều thao tác được thực hiện trên chúng. Nhưng khi chúng ta nói "thay thế các ký tự trong một chuỗi bằng Python", các trường hợp sau sẽ xuất hiện trong tâm trí

  1. Thay thế một ký tự trong Chuỗi bằng một ký tự khác. Ví dụ: Giả sử chúng ta có một chuỗi "Favtutor" và chúng ta muốn thay thế lần xuất hiện đầu tiên của 't' bằng 'T'. Bây giờ, vì chúng ta chỉ thay thế 't' bằng một 'T' khác, điều này được gọi là thay thế một ký tự đơn trong chuỗi
  2. Thay thế Tất cả các lần xuất hiện của một ký tự trong Chuỗi bằng một ký tự khác. Hãy lấy ví dụ trên, giả sử bạn muốn thay thế cả hai lần xuất hiện của "t" trong chuỗi "Favtutor" bằng 'T'. Điều này sẽ dẫn đến chuỗi. "Yêu thích". Do đó, điều này đang thay thế tất cả các lần xuất hiện của một ký tự trong một chuỗi. [Bạn có thể cung cấp luôn số lần xuất hiện, của ký tự đó, bạn muốn thay thế]
  3. Thay thế nhiều ký tự trong một chuỗi bằng ký tự 'giống nhau'. Ví dụ: Bạn có một chuỗi "Xin chào thế giới" và bạn muốn thay thế các ký tự, chẳng hạn như "l" và "o", bằng một ký tự khác, chẳng hạn như '. '. Điều này sẽ dẫn đến. "Anh ta. W. r. đ". Đây là một ví dụ về việc thay thế nhiều ký tự trong một chuỗi bằng một ký tự [giống nhau]
  4. Thay thế nhiều ký tự trong một chuỗi bằng các ký tự khác [khác nhau]. Ví dụ: Hãy lấy câu lệnh "Chuỗi là bất biến". Bạn cần thay thế các ký tự, chẳng hạn ['r', 'm', 'i'], bằng, hãy lấy ['R', '. ', 'M'], theo thứ tự tương ứng, tôi. e. 'r' được thay thế bằng 'R', "M" được thay thế bằng '. ' và 'i' được thay thế bằng 'M'. Do đó, nó sẽ dẫn đến "StRMngs aRe M. dùng được". Đôi khi, nhóm nhiều ký tự này cũng có thể được gọi là 'Chuỗi con'
  5. Xóa ký tự trong chuỗi. Ví dụ: hãy xem xét chuỗi "Fav Tutor". Bây giờ, giả sử bạn cần xóa khoảng trống [' '] giữa 'Yêu thích' và 'Tutor'. Bạn có thể xóa khoảng trống này bằng cách thay thế bằng [""]. Do đó, đầu ra ở đây sẽ là. "Gia sư yêu thích"

Tại đây bạn có thể tìm hiểu cách xóa khoảng trắng khỏi chuỗi trong python

Chắc hẳn bạn đang thắc mắc làm thế nào chúng ta có thể thực hiện các thay đổi [ở đây là thay thế các ký tự] trong chuỗi. Chuỗi là bất biến, phải không?

Chà, Chuỗi là bất biến. Các phương thức [bạn sẽ sớm biết chúng] lấy chuỗi gốc làm đầu vào và trả về chuỗi đã thay đổi [sau khi thay thế các ký tự] làm đầu ra. Đầu ra này được lưu trữ trong một biến chuỗi khác. Do đó, chúng ta cần có một biến khác [đối tượng chuỗi] để lưu kết quả thu được. Do đó, không có thay đổi nào được thực hiện đối với chuỗi gốc, giữ lại thuộc tính bất biến của nó

Làm cách nào để thay thế nhiều ký tự trong một chuỗi bằng Python?

Python cung cấp các mô-đun và phương thức khác nhau để thay thế nhiều ký tự trong một chuỗi. Bây giờ, nhiều ký tự này có thể tách biệt hoặc cùng nhau dưới dạng một 'từ'. Trong khi chúng tôi đang tập trung vào việc thay thế nhiều ký tự, các phương thức này cũng có thể được áp dụng để thay thế một ký tự đơn trong chuỗi trong Python.  

Bắt đầu nào

01] Sử dụng phương thức thay thế[]

Python cung cấp phương thức replace[] để xử lý việc thay thế các ký tự [một hoặc nhiều ký tự] trong một chuỗi. Phương thức thay thế trả về một đối tượng [chuỗi] mới thay thế các trường [ký tự] đã chỉ định bằng các giá trị mới.  

Phương thức replace[] lấy hai tham số làm đầu vào, tham số đầu tiên là mẫu bạn muốn [khớp với chuỗi] được thay thế và tham số thứ hai là mẫu [ký tự] bạn muốn thay thế bằng.  

Cú pháp được sử dụng nhiều nhất cho replace[] là

newObject = originalString. replace['ký tự cần thay thế', 'ký tự cần thay thế' ]

Hãy lấy một ví dụ

# Using replace[] method
string = "Bubblegum"

# replacing the 'b' character with 'B'
changed_string = string.replace["b", "B"]

print["Original string: ", string]
print["New string: ", changed_string]

 

đầu ra.  

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
0

 

Lưu ý cách 'b' trong chuỗi gốc 'Bubblegum' được thay thế bằng 'B's. Đây là một ví dụ về việc thay thế nhiều lần xuất hiện của một ký tự trong một chuỗi

Phương thức thay thế[] cũng có một tham số thứ ba [không bắt buộc] nơi bạn có thể đề cập đến số lần thay thế mà bạn muốn thực hiện

Nghĩa là, nếu bất kỳ từ nào, ví dụ: "Bubblegum" có nhiều hơn một lần xuất hiện ký tự, ở đây 'b', thì chúng ta có thể nhập tham số thứ ba là 1, trong trường hợp chúng ta chỉ cần thay thế một 'b' từ

Do đó, cú pháp cơ bản cho phương thức replace[] là

newObject = originalString. replace['ký tự cần thay thế', 'ký tự cần thay thế, số lần thay thế cần thực hiện]

Hãy xem mã cho ví dụ này

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
1

 

Theo mặc định, tất cả các lần xuất hiện của tham số đầu tiên được thay thế trong chuỗi

đầu ra

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
2

 

Lưu ý cách chỉ lần xuất hiện đầu tiên của 'b' được thay thế bằng 'B'. Điều này xảy ra do số lượt thay thế cần thực hiện được đặt thành 1

02] Sử dụng thay thế [] với Danh sách

Trong phương thức trên, chúng ta đã thấy việc sử dụng phương thức replace[] để thay thế các ký tự đơn [một hoặc nhiều lần xuất hiện] bằng một ký tự khác. Phương thức replace[] cũng có thể được sử dụng để thay thế nhiều ký tự [khác nhau] bằng một ký tự khác [giống hoặc khác nhau cho mỗi ký tự]

Sử dụng vòng lặp for. Cách phổ biến nhất để làm việc với danh sách là sử dụng vòng lặp for. Để thay thế nhiều ký tự [giả sử khác nhau] bằng phương thức replace[], bạn có thể liệt kê tất cả các ký tự cần xóa trong danh sách.  

Một ví dụ về cách khai báo danh sách

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
3

 

Bạn có thể thắc mắc, tại sao chúng ta tạo một danh sách hoặc thậm chí sử dụng vòng lặp for khi chúng ta có thể gọi trực tiếp hàm replace[] trên từng ký tự

Khá đơn giản, phải không?

Không, nó không phải. Bạn sẽ tìm thấy lý do sau trong blog. [Vì vậy, hãy chú ý đến nó. ]

Sau khi khởi tạo danh sách, bạn có thể thay thế các ký tự được đề cập bằng ký tự tương tự [i. e. tất cả bằng một] hoặc với nhiều ký tự [i. e. một nhân vật khác nhau cho mỗi]

Trường hợp. Thay thế nhiều ký tự bằng cùng một ký tự

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
4

 

Bạn sẽ nhận thấy cách tôi sử dụng vòng lặp for để phân tích chuỗi cho 'từng ký tự' trong danh sách, để được thay thế bằng một ký tự khác [như "#"].  

đầu ra

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
5

 

Một lần nữa, lưu ý rằng chúng tôi đã thay thế các ký tự cần thay thế [các phần tử trong danh sách char_remov] bằng cùng một ký tự ['#'] ở trên

03] Sử dụng replace[] với Dictionary

Chúng tôi cũng có thể sử dụng các ký tự khác nhau cho mỗi ký tự được thay thế. Để đạt được điều này, bạn phải biết về từ điển

Từ điển trong Python là gì? . Đây là một loại dữ liệu khác do Python cung cấp, cũng được coi là cách Python triển khai cấu trúc dữ liệu mảng kết hợp. Đây là những thay đổi và không cho phép bất kỳ sự trùng lặp nào vì một khóa chỉ có thể có một giá trị

Một từ điển được đại diện bởi. {}

Một ví dụ về từ điển có thể được xem như

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
6

 

Trên đây là một trong những cách khai báo từ điển. Nó cũng cho thấy một trong những cách tiếp cận để có được các giá trị với sự trợ giúp của các khóa

đầu ra

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
7

 

Bây giờ bạn đã biết từ điển là gì và nó được sử dụng như thế nào, hãy quay lại việc thay thế các ký tự trong một chuỗi. Hãy xem xét ví dụ tương tự được sử dụng trước đó nhưng thay vào đó hãy thay thế từng ký tự bằng một ký tự khác. [Hãy thử thay thế chúng bằng dạng chữ hoa. Điều này sẽ dễ dàng nhận thấy. ]

Trường hợp. Thay thế nhiều ký tự bằng các ký tự khác nhau trong một chuỗi trong Python

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
8

 

Việc sử dụng từ điển giúp dễ dàng thay đổi từng ký tự thành một ký tự khác với sự trợ giúp của cặp khóa-giá trị. Mặc dù bạn có thể sử dụng từ điển để thay thế nhiều ký tự bằng một ký tự, nhưng việc sử dụng từ điển này không được khuyến khích [vì điều đó sẽ không cần thiết]

đầu ra

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
00

 

Tôi hy vọng bạn đã tìm thấy câu trả lời cho câu hỏi của chúng tôi. 'Tại sao chúng ta cần sử dụng vòng lặp?'

Chà, vì chúng ta cần thay thế nhiều ký tự trong một chuỗi, nên nhu cầu về một vòng lặp thực sự rõ ràng. Chúng ta có thể gọi phương thức replace[] để xóa từng ký tự, nhưng bạn sẽ lặp lại quá trình này trong bao lâu?

Ngoài ra, việc theo dõi một danh sách dài các ký tự được thay thế sẽ khó khăn hơn. Do đó, bằng cách liệt kê [hoặc tạo từ điển] các ký tự được thay thế, chúng ta dễ dàng kết thúc một quá trình lặp lại dài với sự trợ giúp của vòng lặp

Ghi nhớ nó trong tâm trí. Nó khá cơ bản nhưng thường có thể xảy ra trong các cuộc phỏng vấn

Phương thức replace[] là phương thức phổ biến nhất để thay thế bất kỳ ký tự nào trong chuỗi. Bạn có thể sử dụng bất kỳ phiên bản nào ở trên để thay thế nhiều ký tự trong một chuỗi bằng Python. Có những ký hiệu đặc biệt [như '. '] cũng có thể được sử dụng với các biểu thức. Việc sử dụng các ký tự hoặc mẫu đặc biệt này để thay thế có liên quan đến các biểu thức chính quy [hoặc RegEx]

04] Sử dụng mô-đun lại

Python cung cấp 'mô-đun lại' để dễ dàng khi làm việc với Biểu thức chính quy. Bạn phải biết rằng biểu thức chính quy là một chuỗi các ký tự tạo thành một mẫu tìm kiếm. Do đó, các biểu thức chính quy về cơ bản là các chuỗi. Bạn cũng có thể thay thế nhiều ký tự trong một chuỗi với sự trợ giúp của 're module'

Về cơ bản có hai cách để thay thế các ký tự

  1. Sử dụng hàm sub[] với các ký tự meta hoặc chuỗi đặc biệt
  2. Sử dụng hàm sub[] với danh sách và từ điển

Trước khi chuyển sang các phương thức này, hãy cùng tìm hiểu về hàm sub[]

Hàm sub[] trong re module. Mô-đun re trong Python cung cấp hàm sub[] thay thế ký tự khớp [ký tự được cung cấp trong chuỗi] bằng ký tự [mới] đã cho. Điều này trả về một chuỗi có các ký tự mới tại chỗ. Lưu ý rằng bạn cần nhập mô-đun re để sử dụng hàm sub[]

Cú pháp cơ bản của hàm sub[] là

newString = lại. phụ ['characterToBeReplaced', 'characterToReplaceWith', stringName ]

Hãy lấy một ví dụ để hiểu cách thức hoạt động của hàm sub[]

Trường hợp. Thay thế một ký tự đơn bằng một ký tự khác trong chuỗi

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
01

 

't' ở đây cũng được coi là một biểu thức chính quy. Ngoài ra, lưu ý rằng, không giống như phương thức thay thế [], tên chuỗi được truyền dưới dạng tham số đầu vào cho hàm con

đầu ra

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
02

 

Hàm sub[] tìm kiếm chuỗi cho mẫu [ký tự] và sau đó thay thế khớp [mẫu] bằng ký tự mới. Nó trả về một chuỗi mới với những thay đổi được thực hiện. Lưu ý rằng bạn cũng có thể chỉ định số lần thay thế xảy ra bằng cách chuyển tham số "đếm" ở cuối. Do đó, cú pháp cơ bản của sub sẽ là

newString = lại. sub['charactersToBeReplaced', 'characterToReplaceWith' , stringName, count ]

Bây giờ, hãy chuyển sang thay thế nhiều ký tự bằng hàm sub[], với sự trợ giúp của các ký tự đặc biệt

Hãy nhớ rằng ký tự meta là ký tự có ý nghĩa đặc biệt [ví dụ - '. ' cho 'hoặc'] và các chuỗi đặc biệt như '\s' cho khoảng trắng. Các ký tự meta hoặc chuỗi đặc biệt này có thể được sử dụng để thay thế nhiều ký tự trong một chuỗi

Hãy lưu ý ví dụ dưới đây

Trường hợp. Thay thế nhiều ký tự trong một chuỗi bằng một ký tự duy nhất, sử dụng chuỗi đặc biệt và ký tự meta

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
03

 

Lưu ý rằng tôi đã sử dụng một chuỗi đặc biệt ['\s'] cũng như một ký tự meta ['. '] trong ví dụ trên

đầu ra

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
04

 

Đây là một cách khác để thay thế nhiều ký tự bằng hàm sub[]. Nhưng cách này có thể được sử dụng cho đến khi số lượng ký tự được thay thế chỉ giới hạn ở một số ít. Giống như trước đây, chúng ta sẽ cần sử dụng một vòng lặp để làm việc với việc thay thế nhiều ký tự [nhiều hơn ít ký tự]. Hàm sub[] cũng có thể được sử dụng với danh sách cũng như từ điển.  

Hãy lấy một ví dụ về việc sử dụng hàm sub[] với từ điển

Trường hợp. Thay thế nhiều ký tự trong một chuỗi bằng các ký tự khác nhau bằng từ điển

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
05

 

Chuỗi ký tự [được tham chiếu với tên biến 'char' và các giá trị trong từ điển] là các biểu thức chính quy.  

đầu ra

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
00

 

Ngoài hàm sub[], mô-đun re còn cung cấp hàm subn[], tương tự như hàm sub[]. Điểm khác biệt duy nhất là hàm subn[] cũng cung cấp số lần thay thế mà nó thực hiện trong chuỗi. Ngoài ra, hàm sub[] cũng có thể được sử dụng với hàm "lambda"

Bạn nên thử sử dụng các chức năng trên. Họ có thể đưa bạn đến đầu ra mong muốn

05] Sử dụng translate[] và maketrans[]

Các phương pháp được thảo luận cho đến nay liên quan đến các biểu thức chính quy và có thể được sử dụng với các danh sách và từ điển. Tuy nhiên, Python cung cấp một phương thức khác sử dụng từ điển để ánh xạ các giá trị cũ thành các giá trị mới và do đó thay thế nhiều ký tự trong một chuỗi

Phương thức maketrans[] tạo một bảng ánh xạ [từ điển] giữa ký tự gốc và ký tự thay thế. Xem ví dụ bên dưới

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
07

 

Phương thức maketrans[] tạo một bảng [từ điển] ánh xạ các giá trị cũ với các giá trị mới

đầu ra

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
08

 

Lưu ý rằng từ điển [được trả về bởi maketrans[]] chứa các giá trị ASCII của các ký tự, [cả hai, được thay thế và thay thế bằng]

Hàm translate[] chấp nhận bảng được tạo bởi maketrans[] và tạo chuỗi đã dịch. Hãy xem ví dụ dưới đây để thay thế nhiều ký tự trong một chuỗi trong Python

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
09

 

đầu ra

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
10

 

Đây là một ví dụ khác về việc thay thế nhiều ký tự trong một chuỗi bằng từ điển. Bạn có thể sử dụng phương pháp trên cho bất kỳ trường hợp nào được đề cập ở trên

So sánh giữa phương thức translate[] và replace[]

Phương thức translate[] và replace[], cả hai đều là các hàm dựng sẵn trong Python, để thay thế nhiều ký tự trong một chuỗi. Bạn có thể sử dụng một trong hai để thực hiện nhiệm vụ. Dưới đây là so sánh của cả hai phương pháp

1. Phương thức translate[] chỉ thay thế các ký tự đơn lẻ bằng các chuỗi tùy ý trong khi phương thức replace[] cho phép thay thế các chuỗi có độ dài tùy ý. Ví dụ

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
11

 

đầu ra

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
12

 

Lưu ý lỗi gặp phải khi gọi phương thức maketrans[]. Lỗi này xảy ra do sự khác biệt về độ dài của các ký tự [hoặc số lượng ký tự] được thay thế và các ký tự được thay thế bằng. Bây giờ, hãy xem phương thức replace[] hoạt động như thế nào với trường hợp

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
13

 

Phương thức thay thế [] coi tham số đầu vào 'mit' là một chuỗi thay vì coi nó là một chuỗi các ký tự riêng lẻ. Ngoài ra, độ dài tùy ý của các tham số không cần giống nhau

đầu ra

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
14

 

Do đó, bạn sẽ nhận thấy rằng thay vì thay thế 'm', 'i', 't', phương thức replace[] chỉ thay thế tổ hợp 'mit' bằng 'M'

2. Phương thức translate[] có thể thực hiện thay thế "nhiều ký tự" trong một lần gọi trong khi phương thức replace[] chỉ có thể thay thế một "chuỗi đơn" cùng một lúc

3. Phương thức translate[] có thể được sử dụng khi bạn không chắc chắn liệu các ký tự mới [ký tự được thay thế] có bị thay thế hay không

Khó?

Chẳng hạn, hãy xem xét một chuỗi, nói 'abcd'. Bây giờ, bạn cần thay thế các ký tự 'a' bằng 'b', 'b' bằng 'c' và 'c' bằng 'd'

Tóm lại, đầu vào = 'abcd'       và          đầu ra dự kiến ​​= 'bcdd'

Hãy so sánh cả hai phương pháp trên đầu vào ở trên

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
15

 

Lưu ý sự khác biệt giữa các đầu ra được trả về bởi cả hai phương thức

đầu ra

regexp_replace[
    regexp_replace[
        myColumn, '[^|,]15.1[,|$]', '\\1string1\\2'
        ], '[^|,]15.2[,|$]', '\\1string2\\2'
    ]
16

 

Cả hai phương pháp tạo ra kết quả đầu ra khác nhau. Chắc hẳn bạn đang thắc mắc "làm thế nào" đúng không?

Điều này xảy ra do phương thức thay thế [] đang được thực hiện trong một vòng lặp, cái này nối tiếp cái kia. Hãy liệt kê ra những thay đổi để hiểu rõ hơn

a. Đầu vào = 'abcd'

b. Thay 'a' bằng 'b' => string = 'bbcd'

c. Thay 'b' bằng 'c' => string = 'cccd'

d. Thay 'c' bằng 'd' => 'dddd'

Do đó, đầu ra = 'dddd'

Do đó, trong trường hợp này, phương thức translate[] đáp ứng sẽ tạo ra kết quả như mong đợi

Do đó, khi so sánh cả hai phương thức, bạn sẽ nhận thấy rằng bạn nên sử dụng phương thức translate[] khi thay thế nhiều ký tự vì nó tăng chức năng. Mặc dù phương thức thay thế [] có lợi ích riêng trong việc tối ưu hóa thời gian

Ngoài ra, hãy kiểm tra cách thay thế một ký tự trong chuỗi trong python

Phần kết luận

Trong bài viết này, chúng ta đã xem xét cách sử dụng các hàm có sẵn của Python để thay thế nhiều ký tự trong một chuỗi. Nhiệm vụ này cũng có thể được thực hiện bằng cách sử dụng các biến thể khác nhau của các vòng lặp trên chuỗi. Chúng tôi cũng đã so sánh các phương pháp với các trường hợp sử dụng khác nhau. Tôi hy vọng bài viết này giúp bạn tìm thấy một phương pháp thích hợp cho mã của bạn. Mã hóa vui vẻ

Làm cách nào để thay thế nhiều chuỗi trong một mảng JavaScript?

replace[/cat/gi, "dog"]; // now str = "Tôi có một con chó, một con chó và một con dê. " str = str. replace[/dog/gi, "dê"]; . " str = str. thay thế[/dê/gi, "mèo"]; . " Lưu câu trả lời này.

Làm cách nào để thay thế các phần tử trong mảng JavaScript?

Phương pháp 1. Sử dụng phương thức splice[] Kiểu mảng trong JavaScript cung cấp cho chúng ta phương thức splice[] giúp chúng ta thay thế các phần tử của một mảng hiện có .

Làm cách nào để thay thế nhiều ký tự trong một chuỗi trong JavaScript?

thay thế so với thay thếTất cả . Sự khác biệt chính là replace[] thay thế lần xuất hiện đầu tiên trong khi replaceAll[] thay thế tất cả các lần xuất hiện của tìm kiếm .

Làm cách nào để thêm bớt phần tử trong mảng trong JavaScript?

Trong bài viết này, chúng ta sẽ xem xét nhiều cách khác nhau để thêm và xóa các phần tử khỏi một mảng trong JavaScript. . Thêm và xóa các phần tử khỏi mảng trong JavaScript

Chủ Đề