str = 'foo' # String#=~、Regexp#=~。マッチした位置かnilを返す str =~ /o/ #=> 1 /o/ =~ str #=> 1 # String#match、Regexp#match。MatchDataかnilを返す str.match /o/ #=> <MatchData "o"> /o/.match str #=> <MatchData "o"> # Regexp#===。trueかfalseを返す /o/ === str #=> true 単にマッチするかどうかを判定したいだけならRegexp#===を使いましょうってパーフェクトRubyに書いてあったので、その場合はRegexp#===を使えばいいと思うけど、=~やmatchと違って===は右辺と左辺が変わると結果が変わるので注意が必要。
![Rubyの正規表現マッチング - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/2a7ebc6fb3d1c8134ac51f3b4cc3a43d91c8917f/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9UnVieSVFMyU4MSVBRSVFNiVBRCVBMyVFOCVBNiU4RiVFOCVBMSVBOCVFNyU4RiVCRSVFMyU4MyU5RSVFMyU4MyU4MyVFMyU4MyU4MSVFMyU4MyVCMyVFMyU4MiVCMCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9YjliMDA5YmU1ZmRjZTI1NTJiMjA4ZGNhNzIwNDgwNjI%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwaG9rYWNjaGEmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTNlMmRkYWJhNWI2MmY4YjE2NjNjMGZmZDNjM2U3NmUz%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3De885cd45809ef13c62752c127a90f07e)