問題ID: 10675

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2014-6-5 11:42
keisuke11  新米   投稿数: 3
以下、問題文から引用

〜〜〜〜〜〜〜
以下の「test.txt」ファイルのうち、「12345」の行とのみマッチする正規表現はどれか。(全て選択)

$ cat test.txt
1
12
123
1234
12345
〜〜〜〜〜〜〜
この問題の選択肢に「^15$」があったのですが、
これは不正解なのでしょうか?
このファイル内では先頭が1で行末が5は、12345しか無いように
見えます。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-6-5 20:08
arashi1977  長老 居住地: 広島  投稿数: 1715
引用:
この問題の選択肢に「^15$」があったのですが、
これは不正解なのでしょうか?
このファイル内では先頭が1で行末が5は、12345しか無いように
見えます。
確かに先頭が1で行末が5ですが、その間の文字(234)は何でマッチングさせますか?
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014-6-9 11:07
keisuke11  新米   投稿数: 3
そもそも234とマッチングさせる必要ってあるんですか?

この問題は、「12345」の行とのみマッチするものを全て選択するとなっていて、このファイル内では先頭が1で行末が5は「12345」しかないので「^15$」が正解に含まれると思いました。

それとも「^15$」は15としかマッチしないということでしょうか?

ご教示お願いします。
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014-6-9 12:09 | 最終変更
arashi1977  長老 居住地: 広島  投稿数: 1715
引用:
そもそも234とマッチングさせる必要ってあるんですか?
あります。
じゃないと「(行頭)1("234"という文字列)5(行末)」という文字列だといえないですよね

引用:
それとも「^15$」は15としかマッチしないということでしょうか?
その通りです!
ただし、正しくは「(行頭)15(行末)」という文字列になります。
なので
「(スペース)15(スペース)4」
などはマッチしません。

参考までに実行結果をどうぞ
$ cat test.txt
1
12
123
1234
12345
$ grep ^15$ test.txt
(何も表示されない)
$ grep ^1...5$ test.txt
12345
$ echo 15 | grep '^15$'
15
$ echo 12345 | egrep '^15$'
(何も表示されない)

なし Re: 問題ID: 10675

msg# 1.2.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-6-9 12:21
keisuke11  新米   投稿数: 3
詳しい解説ありがとうございました!
やっと理解できました。

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.