• ベストアンサー

[15]にマッチする正規表現

[15]にマッチする正規表現 [15] にマッチする正規表現を書きたいのですが、うまくいきません。。。。 簡単だ、と思ったのですが。。。 expr "$DATA1" : .*\[15\].* と書くと、中の数字が15じゃなくてもマッチしてしまいます。 expr "$DATA1" : .*15.* であれば"15"にマッチしますが、対象の文字列の都合上、カッコでも識別する必要があり 困っております。[と]をエスケープする目的で\をつける、と思っているのですが、何か 思い違いをしているのでしょうか。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

シェルから起動するexprコマンドのことですよね。 シェルが\を解釈するので、\[ とexprに解釈させたければ、少なくとも \\[ と書く必要があります。 expr "$DATA1" : .*\\[15\\] 普通は' ' で囲んで、 expr "$DATA1" : '.*\[15\]' でしょうか。囲んだ中身がそのままexprに渡ります。' ' を使わないで \ を使うなら、 expr "$DATA1" : .\*\\\[15\\\]

oyazi_man
質問者

お礼

回答ありがとうございました。 結局うまくいきませんでした。 sed、awkを組み合わせて乗り切りました。

関連するQ&A