$str =~ /^--/m and print "複数行モードでマッチ\n"; $str =~ /<script.*?<\/script>/s and print "一行モードでマッチ\n"; 定義が分からない方は、後述で定義を解説しています。 一般に Perl では マッチ m// や置換 s/// の右側(左側ではないことに注意)に伴う上記の m や s のような英文字のことを修飾子 (modifier) と言います (see: perlre)。 私はこれをよく間違えたり忘れたりするので、こんな覚え方を考えてみました。 そもそも名前がややこしい 一行モード(Single line mode) m//s は、ドット(.)が 「複数行」 にわたってマッチするようになる 複数行モード(Multiple line mode) m//m は、"^" "$" が 「一行」 ごとにマッチするように
![Perlの正規表現の一行モード(/s)と複数行モード(/m)の覚え方 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/1f951de180a60290fb8937e5a096e11d952bb4df/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-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9UGVybCVFMyU4MSVBRSVFNiVBRCVBMyVFOCVBNiU4RiVFOCVBMSVBOCVFNyU4RiVCRSVFMyU4MSVBRSVFNCVCOCU4MCVFOCVBMSU4QyVFMyU4MyVBMiVFMyU4MyVCQyVFMyU4MyU4OSUyOCUyRnMlMjklRTMlODElQTglRTglQTQlODclRTYlOTUlQjAlRTglQTElOEMlRTMlODMlQTIlRTMlODMlQkMlRTMlODMlODklMjglMkZtJTI5JUUzJTgxJUFFJUU4JUE2JTlBJUUzJTgxJTg4JUU2JTk2JUI5JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0yZWUxZTlkOWQ4MGYzN2EwNWUzNGFhNTIwM2IwMTI0NQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQweHRldHN1amkmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTNhZTJkMDMzNGUyZjQxMjlkNGYxYTAwYzM1ZGM0ZmY5%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Df79d390c9e80f281ced5f9c052c221fb)