知っておくとちょっと便利!正規表現の活用法2

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

【5/27開催】事業変革を最新ソフトウェア技術で加速する「OSS利活用事例セミナー」
OSSのビジネス活用事例などを紹介します!登壇者はスカパー様やIPAなど🎤
OSSを活用した新たなビジネス創出やDX推進のヒントを得られる機会です。
https://ossforum.connpass.com/event/318583/

今号では、前号に引き続き知っておくと便利な正規表現の活用法についてご紹介します!
前号でご紹介した「知っておくとちょっと便利!正規表現の活用法1」もぜひご参照くださいね。

知っておくとちょっと便利な正規表現 ~リテラル文字編~

. や [ ] ( ) など、正規表現において文字列を制御するための文字をリテラル文字と言います。
このリテラル文字を、文字列として扱いたい場合は、文字の前に \ を付けます。

$ cat test5.txt
1
2
3
4
5
[1]
[2]
[3]
[4]
[5]
$ grep [1] test5.txt // 1 が含まれる文字列を grep
1
[1]
$ grep [\[1\]] test5.txt // [1] が含まれる文字列を grep
[1]

その他にも、主なリテラル文字として下記のものがあります。

・(
・)
・[
・]
・{
・}
・^
・$
・!
・?
・.
・*
・+
・-

知っておくとちょっと便利な正規表現 ~論理式編~

正規表現における論理式は、様々な記号を用いて複数の条件を組み合わせることができるものになります。

  • OR 条件
    OR 条件は、複数の条件のうちいずれか一つに一致する場合に true (真) と判断します。
    OR 条件を指定する場合は、複数の文字列の間に | を付けます。

    例えば、下記のように grep コマンドを指定した場合、テキストファイルから 3 もしくは 5 が含まれる行のみを表示します。

    $ cat text1
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $ grep -P '(3|5)' text1
    3
    5
    13
    15
    
  • NOT 条件
    NOT 条件は、条件に一致しない場合に true (真) と判断します。
    NOT 条件を指定する場合は、任意の文字列の前に ?! を付けます。

    例えば、下記のように grep コマンドを指定した場合、テキストファイルから 1 が含まれない行のみを表示します。
    (例では ^ を付けているため、先頭に 1が含まれない行のみを表示するようにしています)

    $ cat text1
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $ grep -P '^(?!1)' text1
    2
    3
    4
    5
    6
    7
    8
    9
    
  • AND 条件
    AND 条件は、複数の条件すべてに一致する場合に true (真) と判断します。
    ですが正規表現においては AND 条件を表すことができる文字がありません。
    AND 条件を指定したい場合、bash の if 文を使用するなどの代替え策が必要となります。

アバター画像
About 貝野 友香 71 Articles
OSSよろず相談室でサポートをやっています。時々ライブ配信や勉強会に出ていることもあります。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる