アプリ版:「スタンプのみでお礼する」機能のリリースについて

「01234123456789abcdefghijklmnopqrstuvwxyz」
上記の文字列を「\(12\)\(34\)\1\2」で検索すると、
どうして「12341234」がマッチするのかが分かりません。

「\(12\)\(34\)」で検索した場合、「12341234」となるのは分かります。
もしくは、分かっているつもりです。最後の「\1\2」の意味合いが理解出来ません。

よろしくお願い致します。

A 回答 (2件)

\1は、最初の括弧の中身なので 12 です。

\2は、2番目の括弧の中身なので 34 です。
なので、正規表現は 12341234 となり、12341234 にマッチするのは当然です。
    • good
    • 0
この回答へのお礼

artoo様、アドバイスありがとうございます。

1.最後の「\1\2」の部分の意味合いは、最初に「\(12\)\(34\)」でマッチした結果をさらに、始まりが「12」と終わりが「34」であるかどうかをチェックしているというでしょうか?

2.ちなみに「\(12\)\(34\)\1」のような記述は文法上適切ではないのでしょうか。

かさねがさね質問をして申し訳ありません。

お礼日時:2015/09/12 21:54

>最後の「\1\2」の部分の意味合いは、最初に「\(12\)\(34\)」でマッチした結果をさらに、始まりが「12」と終わりが「34」であるかどうかをチェックしているというでしょうか?



いいえ。最初の回答をよく読んでください。

質問のような固定文字列の場合は、あまり意味が無く、\(12\)\(34\)\1\2 は 12341234 と全く同じです。
\([A-Z]\)\([0-9]\)\1\2 のようなケースだと、A1A1 にはマッチしますが、 A1B2 にはマッチしません。

>ちなみに「\(12\)\(34\)\1」のような記述は文法上適切ではないのでしょうか。

いえべつに適切です。123412 と同じなので、括弧などを使う意味が無いですが。
    • good
    • 0
この回答へのお礼

返信ありがとうございます。

お礼日時:2015/09/16 09:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!