2012-12-07 30 views
65

Tôi chỉ muốn biết liệu regex ruby ​​có toán tử không khớp giống như !~ trong perl hay không. Tôi cảm thấy bất tiện khi sử dụng (?!xxx) hoặc (?<!xxxx) vì bạn không thể sử dụng các mẫu regex trong phần xxx.Cụm từ thông dụng của Ruby có toán tử không khớp như "! ~" Trong Perl không?

+0

http://rubular.com – jbearden

+7

Tất cả bạn phải làm là lửa lên 'irb' và thử nó. Có lẽ sẽ nhanh hơn việc đăng câu hỏi SO. –

+21

Nhưng không nhanh hơn googling 'ruby không phù hợp' và tìm câu trả lời này trên SO;) – micapam

Trả lời

123

Có: !~ chỉ hoạt động tốt - có thể bạn cho rằng không phải vì it’s missing from the documentation page of Regexp. Tuy nhiên, nó hoạt động:

irb(main):001:0> 'x' !~ /x/ 
=> false 
irb(main):002:0> 'x' !~ /y/ 
=> true 
+3

'! ~' Được ghi lại trong [Object] (http://ruby-doc.org/core-2.3.1/Object.html # method-i-21-7E). –

1

AFAIK (xxx?!) Được hỗ trợ:

2.1.5 :021 > 'abc1234' =~ /^abc/ 
=> 0 
2.1.5 :022 > 'def1234' =~ /^abc/ 
=> nil 
2.1.5 :023 > 'abc1234' =~ /^(?!abc)/ 
=> nil 
2.1.5 :024 > 'def1234' =~ /^(?!abc)/ 
=> 0 
Các vấn đề liên quan