質問: 問題 == 以下の文章があります。 ``` 3\t名詞,数,*,*,*,*,*\n年\t名詞,接尾,助数詞,*,*,*,年,ネン,ネン\n前後\t名詞,副詞可能,*,*,*,*,前,マエ,マエ\nEOS\n ``` この文章の`3`、`年`、`前後`を抽出したいです。 `\n` (なくてもよい) と `\t` に挟まれた文字の抽出になります。 そして私が作った正規表現は以下になります。 ``` (\\n)?(.*)\\t ``` すると最長マッチになってしまい、どうもとることができません。 ![画像の説明をここに入力](https://i.stack.imgur.com/FBA0G.png) `?` をいれることで最短マッチにしたいのですが、こちらも結果は変わりません。 ``` (\\n)?(.*?)\\t ``` どのようにすれば実現できるでしょうか。 正規表現は以下のサイトでチェックしております。 正規表現チェッカー わかるかた教えていただけますと嬉しいです。
回答: `^(\d+?)\\t.*?\\n(.*?)\\t.*?\\n(.*?)\\t` これで、$1, $2, $3にそれぞれ > > $1 : 3 > > $2 : 年 > > $3 : 前後 > > > が代入されることを正規表現チェッカーで確認しました `^`は行の先頭を意味する正規表現なので、適宜置き換えて下さい