Tôi gặp sự cố với Ruby regex.Cách sử dụng VÀ trong Ruby Regex
Bạn làm như thế nào VÀ (&) regex bằng ruby?
ví dụ:
cat and dog
cat
dog
I just want to match "cat and dog"
Tôi gặp sự cố với Ruby regex.Cách sử dụng VÀ trong Ruby Regex
Bạn làm như thế nào VÀ (&) regex bằng ruby?
ví dụ:
cat and dog
cat
dog
I just want to match "cat and dog"
Bạn có thể làm một cái gì đó giống như một VÀ sử dụng aheads cái nhìn tích cực
(?=.*cat)(?=.*dog).*
Xem nó here on Rubularlink cập nhật!
Dò tìm tích cực này (?=.*cat)
kiểm tra xem có "mèo" ở đâu đó trong chuỗi không, sau đó tương tự được thực hiện cho "chú chó" sử dụng (?=.*dog)
. Nếu cả hai xác nhận này đều đúng thì chuỗi hoàn chỉnh được kết hợp với số .*
ở cuối.
Ưu điểm là nó cũng sẽ phù hợp
chó và mèo
và không chỉ
mèo và chó
nhưng nó cũng sẽ phù hợp
chó và mèo
nếu bạn muốn kết hợp chính xác, sau đó sử dụng này
(?=.*\bcat\b)(?=.*\bdog\b).*
\b
là một ranh giới từ, tức là nó phù hợp giữa một từ và một nhân vật từ phi.
Xem nó here
và là hành động mặc định trong một regexp, ví dụ trận đấu đầu tiên này sau đó theo sau đó và vân vân.
để phù hợp với mèo và chó, sử dụng giống như
cat.*dog
điều đó có nghĩa, phù hợp với "mèo" theo sau bởi bất cứ điều gì và sau đó tiếp theo là "con chó". Nhưng sau đó một lần nữa tôi có thể đã hiểu lầm câu hỏi của bạn ...
Nó phụ thuộc vào những gì bạn muốn.
Bạn có thể sử dụng thẻ hoang dã
cat.+dog
Hoặc
cat.+dog|dog.+cat
Hoặc
cat +and +dog
Câu hỏi của bạn không phải là rất rõ ràng.
Nếu bạn muốn để phù hợp với chỉ những chuỗi có chứa cả "mèo" và "chó" (có thể như các bộ phận của một từ), bạn có thể làm:
/^.*(cat.*dog|dog.*cat).*$/
Các regex trên sẽ phù hợp với "giáo điều nối", nhưng không phải là "nối".
Nếu bạn muốn đảm bảo rằng "mèo" và "chó" xuất hiện như lời tự, làm:
/^.*(\bcat\b.*\bdog\b|\bdog\b.*\bcat\b).*$/
Các regex trên sẽ phù hợp với "con mèo và con chó", nhưng không phải là "nối giáo điều" hay "cat dogma".
Nguồn: http://ruby-doc.org/docs/ProgrammingRuby/html/intro.html#S5
Không có and
nhà điều hành trong Regexp
s, đơn giản chỉ vì nó không có ý nghĩa. Nó sẽ không bao giờ phù hợp với: cách có thể là String
cả hai là 'cat'
và'dog'
cùng một lúc?
'schrodinger.pet.species.to_s' –
Tất nhiên, một chuỗi có thể là cả" con mèo "và" con chó "cùng một lúc -' "một con mèo và một con chó có cùng chuỗi" '. – jeffdill2