解決済み

正規表現について

  • すぐに回答を!
  • 質問No.7063937
  • 閲覧数107
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 17% (40/226)

/^R|ruby$/
上記のような正規表現があったとします。

この正規表現の【|】の判断がわかりません。具体的には、/^ $/という記述から

対象の文字列の先頭がRかrのどちらかで以降がubyと続く文字列にマッチという
意味だと解釈しているのですが違うのでしょうか?

具体的にはRubyという文字列かrubyという文字列の二つのうちどちらかにしか
マッチしないとおもっていたのですが、 rrubyという文字列やRrubyという文字列にもマッチします。そもそもこの場合のR|rの箇所ですが、これはRかrのどちらかが先頭にあり
二文字目からはubyという文字列がつづきますよ。という正規表現ではないのでしょうか?
かなりこまっています。
識者のかたご教授ください。

質問者が選んだベストアンサー

  • 回答No.2

ベストアンサー率 81% (89/109)

「|」を挟んで別の正規表現が組み立てられるようなイメージを浮かべるとわかりやすいでしょうか
グルーピングの括弧と併用すれば解決すると思いますが、そもそもこのケースであれば「[]」を使うか、部分的な「i修飾子」有効化をお勧めします。

http://ideone.com/1KTkp

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 50% (2/4)

「Rではじまるか、またはrubyで終わるか」という意味になります。

>先頭がRかrのどちらかで以降がubyと続く文字列にマッチ
/^(R|r)uby/
と書くべきです。
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ