• 締切済み

単語を抽出する正規表現

単語を抽出する正規表現を教えてください。grepを使うと、「○○を含む行」がすべて抽出されますが、下記のように単語だけを抽出したいのですが、どうすればいいかご存知の方がいらっしゃいましたら、教えてください。 --- ABC DEF GHIJ AB CDEF GHIJK ABCDE FGH I JKL 上記からGH始まりの単語だけを抽出したいです。 1行目と2行目のGHIJとGHIJKの2つだけが結果として欲しいです。1行目と2行目全体が出てくるのではなくて。 Windowsでは、エディタは秀丸を使ってます。 Windowsで不可能なら、UNIX上で実施することも考えていますが、Windowsのエディタ上で実行できる正規表現の文などありましたら教えてください。

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

grepにもいろいろありますのでなんですが、 GNU grep ならこのように >type sample.txt ABC DEF GHIJ AB CDEF GHIJK ABCDE FGH I JKL >grep -o "\bGH\w*" sample.txt GHIJ GHIJK #grep -o "\<GH\w*" sample.txt #でもOK GNU grep は Windowsにも移植されています。

  • wangkp
  • ベストアンサー率25% (9/35)
回答No.1

\b(GH\S*)

関連するQ&A

  • さくらエディタでGrep検索する時の正規表現

    さくらエディタでGrep検索する時の正規表現 「ABC」が含まれていて「DEF」が含まれない行という正規表現は どのように指定すればよいのでしょうか?

  • 秀丸の正規表現(HMJRE.DLL V1.92)で、

    秀丸の正規表現(HMJRE.DLL V1.92)で、 以下のことが可能かどうか教えてください。 ある2つの文字列のいずれも含まない行を 正規表現とGREPで抽出したいのです。 (ほかの手段でもかまいません) たとえば AAAA ABCDEF BCDEFG EFGHI といったテキストデータがあった場合 "ABC"と"DEF"のいずれも含まない行であれば AAAA EFGHI を抽出したいのです。 以上、よろしくお願いします。

  • 正規表現で「除く」

    windows用のエディタの「VIVI」というのを使っています。 grepで「2002/09/01」という文字列を含まないテキストを検索したいのですが、正規表現での検索の方法を教えていただけないでしょうか。 #どのエディタも同じではないかもしれませんが。 #自分は、正規表現のことは素人です。単に上記条件の日付のみを変更して使いたいだけ・・ (^^;

  • 正規表現で5文字切抜き

    正規表現で5文字切抜き 正規表現について悩んでいます。秀丸エディタで正規表現を使いたいと思っています。 各行に任意の文字列(スペース、ハイフン、カンマ、アンダーバー、半角全角英数等含む)があります。 先頭行から5文字を残して残りは削除したいと思います。 5文字以下はそのまま残したいと思います。 例) aaaaabb⇒aaaaa ab cdef⇒ab cd a ⇒ a aa⇒aa 「^.{1,5}」とやると、先頭から5文字選択できるのはわかります。 「^.{1,5}(?=.+)」とやっても選択できるのはわかります。 ただし、6文字以上は削除とした場合、どのように正規表現を組み立てればよいでしょうか?

  • 正規表現でマッチさせたい文字列の指定方法

    正規表現でマッチさせたい文字列の指定方法について こんにちは。正規表現について教えてください。 秀丸エディタでgrepする時に先頭行に 『ファイル名(行数): 』という文字列が 先頭行に入りますが、これを正規表現を使用して消したいと思っています。 具体的には以下のような表現ですが、どのように指定するのが正しいでしょうか。 いくらかテストしているのですが、なかなかうまくできず困っています。 消したい文字列 test.log-110411-01.bak.text(38): よろしくお願いします

  • 秀丸正規表現で数字を含まない行だけ抽出する方法

    秀丸正規表現で、 半角数字を含まない行だけ抽出する 方法はありますか? abc 抽出 数字  抽出 あ01 抽出しない a0c 抽出しない 111 抽出しない 2ab 抽出しない お分かりになる方がいらっしゃったら、アドバイスいただけると嬉しいです。 よろしくお願いいたします。

  • 秀丸 正規表現 \z

    あるフォルダに空のファイルがいくつかあって、それをgrepを使ってファイルの一覧を取得したいのです。 空のファイルは、[EOF]とだけ入っている状態なので、 正規表現の「\z」で抽出出来そうな感じですけど、駄目でした。 マクロを使わないで、正規表現だけで、ファイルの一覧を取得出来るのでしょうか? 秀丸初心者ですが、宜しくお願いします。

  • 文字数の多い単語だけ抽出(多言語テキスト)

    英・仏・独語の多数のテキストファイルから12文字以上の単語だけ抽出したいのですが効率のよい方法はないでしょうか。 英語だけならテキストエディタの正規表現を使ったgrepで \w{12,} で12文字以上の単語を含む行を検索したうえで、\w{1,11} を空白と置換して削除してしまえばいいのですが(一緒に表示させるフルパスは別途消す必要がありますが)、仏・独語となるとイロイロ問題が出てきます。 例えば、仏語では a'bc'def のようなパターンの単語があります。これを単に検索するだけなら \w'\w+'*\w* で検索できますが、12文字以上と指定する方法がわかりません(アポストロフィがひとつだけなら \w'\w{10,} で12文字以上ということになるのですが…)。 そこで質問なのですが: 1. 上記の仏語のようにアポストロフィを2つ含む12文字以上の単語を抽出するにはどうしたらいいでしょうか。 2. そもそも12文字以上の単語を含む行をgrepしたうえで、11文字以下の単語を消去したりせずに、最初から12文字以上の単語だけを抽出する方法はないのでしょうか。 できれば、フリーウェなどを導入せずにテキストエディタやOffice系アプリなどだけで対処したいと思います。VBSでもOKですが、その場合は、初歩的なことしかわかりませんので、アドヴァイスというより丸投げしてしまうことになります。 どうかよろしくご助言をお願いします

  • 正規表現

    テキストファイルからコメント行以外から文字列"bbb"を含む 行をgrepで抽出したいと思っております。 コメント行→"#"で始まる行と"--"で始まる行 先頭にスペースがある場合もあるので、結局 先頭に「0個以上のスペース+("#"or"--")」がある行は対象外 として、文字列"bbb"を含む行をgrepで抽出したいと思っています。 下記、foo.txtの中から下記の抽出対象の2行のみを抽出したい場合、 どういった正規表現を書けばいいか教えてください。 【foo.txt】 aaa bbb → 抽出対象 aaa bbb →抽出対象 # aaa # bbb →抽出対象外 #aaa # aaa --aaa --aaa -- aaa -- bbb →抽出対象外 -aaa -bbb - aaa ご存じの方がいらっしゃいましたら、よろしくお願い致します。

  • 秀丸の正規表現はどの流派に属しているのですか?

    秀丸エディタ64 (バージョン8.20)を使用しています。 秀丸の正規表現は、どういった流派(?)の流れを汲んでいるのでしょうか?よく、○○互換の正規表現という言葉がありますよね。Perl互換、.NET互換など、、、Java、C、そのほかの言語/プラットフォームで秀丸の正規表現に最も近いのは何でしょうか、教えてください。