Computer >> Máy Tính >  >> Lập trình >> Ruby

3 cách tuyệt vời để sử dụng phương pháp Gsub của Ruby

Hãy nói về gsub của Ruby phương pháp &cách sử dụng nó. Trước tiên, bạn sẽ cần một chuỗi để chơi với phương pháp này.

Tại sao?

Bởi vì toàn bộ điểm của gsub là thay thế các phần của một chuỗi.

Thực tế :

"Phụ" trong "gsub" là viết tắt của "thay thế" và "g" là viết tắt của "toàn cầu".

Đây là một chuỗi mẫu :

str = "white chocolate"

Giả sử chúng tôi muốn thay thế từ "trắng" bằng từ "tối".

Đây là cách thực hiện :

str.gsub("white", "dark")

Điều này đang nói :

Cho chuỗi str , thay thế TẤT CẢ các lần xuất hiện của từ đầu tiên (white ) với từ thứ hai (dark ).

Điều đó có nghĩa là chúng ta sẽ ăn sô cô la ngon hơn nhiều.

Chờ đã, nó chỉ là một chuỗi.

Chúng tôi không thể ăn cái đó! 🙂

Dù sao…

Ruby’s gsub phương pháp có thể làm được nhiều việc hơn là thay thế đơn giản .

Hãy xem một vài ví dụ.

Thay thế các mẫu bằng một biểu thức chính quy

Thay thế một từ duy nhất cũng được.

Nhưng nếu bạn có thể thay thế một mẫu thì sao?

Thích :

Một năm, địa chỉ email, số điện thoại, v.v.

Bạn có thể!

Đây là một ví dụ :

"a1".gsub(/\d/, "2")

# "a2"

Đối số đầu tiên là một biểu thức chính quy và có quá nhiều thứ để trình bày ở đây.

Nhưng đó là ngôn ngữ đối sánh mẫu .

Trong trường hợp này, \d tìm kiếm các số, như số “1” trong “a1”.

Bạn cũng có thể làm điều này :

"a1".gsub(/(\w)(\d)/, '\2\1')

Kết quả nào dẫn đến :

"1a"

Chúng tôi đã chuyển đơn đặt hàng!

Điều này hoạt động bằng cách sử dụng một tính năng được gọi là "nhóm thu thập".

Chúng ta có thể sử dụng các nhóm dưới dạng \1 cho nhóm đầu tiên, \2 cho nhóm thứ hai, v.v.

Các nhóm được tạo bằng dấu ngoặc đơn.

Gsub nâng cao có khối

Mọi thứ thực sự thú vị khi bạn bắt đầu sử dụng gsub với một khối.

Tại sao?

Bởi vì trong một khối, bạn có thể sử dụng logic để quyết định cách thay thế thứ gì đó.

Thay vì sử dụng giá trị tĩnh.

Ví dụ :

"dog".gsub(/\w+/) { |animal| animal == "dog" ? "cat" : "dog" }

Chúng tôi tìm thấy con vật bằng \w+ , có nghĩa là “một hoặc nhiều ký tự chữ và số”.

Sau đó :

  • Nếu đó là "chó", chúng tôi thay thế nó bằng "mèo"
  • Nếu từ này là bất kỳ thứ gì khác , chúng tôi thay thế nó bằng “dog”

Loại logic này không thể thực hiện được với giá trị tĩnh, thông số thứ 2 của gsub.

Thay thế nhiều thuật ngữ bằng một hàm băm

Nếu bạn có một danh sách các thay thế để thực hiện, bạn có thể sử dụng hàm băm.

Thích cái này :

colors = {
  "B" => "blue",
  "G" => "green",
  "R" => "red"
}

Điều này hoạt động giống như một từ điển dịch, trong đó các khóa sẽ được thay thế bằng các giá trị của chúng.

Đây là một ví dụ :

"BBBGR".gsub(/\w/, colors)

Kết quả nào dẫn đến :

"bluebluebluegreenred"

Đảm bảo rằng đối số đầu tiên của bạn sẽ khớp với các khóa.

Trong trường hợp này, \w khớp với các ký tự riêng lẻ, vì vậy nó sẽ khớp với “B”, sau đó thay thế nó bằng “xanh lam”.

Tóm tắt

Bạn đã tìm hiểu về phương thức gsub trong Ruby! Đây là một phương pháp mạnh mẽ cho phép bạn thay thế hoặc thay thế các ký tự bên trong một chuỗi.

Nó có nhiều công dụng :

  • Loại bỏ các ký tự không hợp lệ (bằng cách đặt đối số thứ 2 thành một chuỗi trống)
  • Thay thế các trình giữ chỗ và từ viết tắt bằng giá trị đầy đủ của chúng
  • Sử dụng các mẫu và logic để thay đổi một chuỗi

3 cách tuyệt vời để sử dụng phương pháp Gsub của Ruby

Bây giờ đến lượt bạn thực hành với phương pháp này để bạn có thể làm cho kiến ​​thức mới của mình trở nên vững chắc.

Cảm ơn vì đã đọc 🙂