Một số Regex thường dùng trong ruby

Giới thiệu:

Biểu thức chính qui(regular expression, hay viết tắt là regex) là mô hình trong đó mô tả nội dung của một chuỗi. Chúng sử dụng để kiểm tra xem một chuỗi có chứa một mẫu nhất định, hoặc xuất ra các phần được tìm thấy. Chúng được tạo ra với / pat / và% r {} pat hoặc Regexp.new

Chúng ta xem một vài ví dụ sau:

Tìm vị trí ký tự hoặc nhiều ký tự trong một chuỗi.

s = "/learn/regex"
idx = s =~ /regex/

#Kết quả trả về là:
# => 7

#Nếu không tìm thấy sẽ trả về nil.

Kiểm tra ký tự hoặc nhiều ký tự có nằm trong chuỗi hay không?

s = "/learn/regex"
if s =~ /regex/
  puts "found the chars"
else
  puts "not found"
end

#Kết quả trả về là:
# =>  "found the chars"

Chúng ta thấy đoạn mã trên cũng giống đoạn mã tìm vị trí ký tự. Nhưng nó khác ở chổ chúng ta có thể sử dụng điều kiện if trong trường hợp này.

Xuất chuỗi nâng cao

s = "learn regex extra"
s =~ /^(.+) .+? (.+)/
puts $1
puts $2

#Kết quả trả về là:
#  => "learn"
#  => "extra"

Phương thức thay thế

phone = "2004-959-559 #This is Phone Number"
phone = phone.sub!(/#.*$/, "")
puts "Phone Num : #{phone}"

phone = phone.gsub!(/\D/, "")
puts "Phone Num : #{phone}"

#Kết quả trả về là:

#  => "Phone Num : 2004-959-559"
#  => "Phone Num : 2004959559"

Tiếp theo, Chúng ta hãy xem đoạn code sau

text = "rails are rails, really good Ruby on Rails"

# Đổi từ chữ rails thành chữ Rails
text.gsub!("rails", "Rails")

# In hoa chữ R trong chữ rails
text.gsub!(/\brails\b/, "Rails")
puts "#{text}"

#Kết quả trả về là:

#  => "Rails are Rails, really good Ruby on Rails"

Chúng ta lưu ý rằng. hàm subgsub sẽ trả về một chuỗi mới. Nó không sửa chuỗi hiện tại nên nó sẽ làm cho code chúng ta chậm hơn. Vì thế, chúng ta nên dùng sub!gsub!.