正規表現での実例パート1
1. Java Integer の変数名を含む行にマッチさせる
src 内にあるすべてのファイルを検索させている。
$ egrep -hr 'p(rivate|ublic|rotect) +Integer +[a-zA-Z_0-9]+' src private Integer speed; private Integer speed; public Integer generateNumber() { public Integer getAverage() { private Integer price; private Integer reviewNum; public Integer getPrice() { public Integer getReviewNum() { private Integer sales; public Integer getSales() {
2. ダブルクォートで囲まれた文字列を含む行にマッチさせる
[^"]* は”ダブルクォート以外の文字列”を表現している。
$ egrep -hr '"[^"]*"' src Member member = new Member(1, "hoge"); PointCard pointCard = new PointCard(1, "hoge", 2000L); assertTrue(wb.getMessage().equals("This is example.")); Whitebox.setInternalState(wb, "message", "overwritten the message."); assertTrue(wb.getMessage().equals("overwritten the message.")); assertThat(memberMock.getMemberNameAndPoint(), is("hoge_7777")); when(birthMonth.getBirthStone(anyInt())).thenReturn("not found"); when(birthMonth.getBirthStone(2)).thenReturn("amethyst"); when(birthMonth.getBirthStone(7)).thenReturn("ruby"); when(birthMonth.getBirthStone(11)).thenReturn("topaz");
3. ドル金額のみが含まれる行にマッチさせる
以下のようなテキスト(text.txt)があるとする。
082 1040.2 $56 23 $8.11 $abc $77.7 in total
^..$ で囲んでいるため、"$77.7 in total" はマッチ対象にならない。
$ egrep -i '^\$[0-9]+(.[0-9]+)?$' text.txt $56 $8.11