🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

2回答

314閲覧

ruby 正規表現 超初心者

ttttaaaak

総合スコア13

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

1グッド

1クリップ

投稿2020/01/06 09:17

\Aはこの直後の文字列が先頭ということでしょうか
もしくわ\A自体に何か任意の文字が入るという意味でしょうか。
ruby\zはこの直前の文字列「y」ということでしょうか
もしくは「ruby」自体が末尾ということでしょうか

また\Aruby|ruby\zは
rubyかrubyという意味なのか
〇rubyかruby〇(〇は任意の文字)
という意味なのか

以前ここで詳しく教えていただいたのですが
それでも正規表現についてさっぱりわかりません。。。。

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

\Aとか\z等は、アンカーと言って、文字にはマッチしません。位置にマッチします。位置というのがわかりにくいかもしれませんが、文字の直前・直後の隙間です。
\Aは文字列の先頭、言い換えると、先頭文字のさらにその前の隙間にマッチします。
\zは文字列の末尾、言い換えると、末尾文字のさらにその後ろの隙間にマッチします。
(他にも、「英数字等」と「英数字等以外(記号など)」の境目にマッチするアンカーもあります)

\Aruby|ruby\zは、\Arubyまたはruby\zということで、
「文字列の先頭にあるruby」または「文字列の末尾にあるruby」という意味です。

投稿2020/01/06 10:16

otn

総合スコア85890

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

https://docs.ruby-lang.org/ja/latest/doc/spec=2fregexp.html のアンカーの節の内容ですね。

こういうのは、irb を用いて小さく試すのが、理解を深めます。

Ruby

1irb(main):002:0> str = "rubyhoge" 2=> "rubyhoge" 3irb(main):003:0> /\Aruby|ruby\z/ =~ str 4=> 0 5irb(main):004:0> str = "hogeruby" 6=> "hogeruby" 7irb(main):005:0> /\Aruby|ruby\z/ =~ str 8=> 4 9irb(main):006:0> str = "hogerubyhoge" 10=> "hogerubyhoge" 11irb(main):007:0> /\Aruby|ruby\z/ =~ str 12=> nil

投稿2020/01/06 09:54

kazto

総合スコア7196

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問