0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

エンジニア3年目、2023年の開発を振り返るAdvent Calendar 2023

Day 13

ひらがなを含む行を見つけるための正規表現

Last updated at Posted at 2023-12-12

ひらがなを含む行を見つけるための正規表現

正規表現は、文字列のパターンを記述するための強力なツールです。ここでは、特定の条件を満たす行を見つけるための正規表現について学びます。具体的には、以下の条件を満たす行を見つける方法を説明します:

  1. 行には「//」が含まれていないこと。
  2. 行には少なくとも1つの平仮名が含まれていること。

正規表現の構造

このタスクを達成するための正規表現は次のようになります:

^(?!.*//).*[ぁ-ん].*$

この正規表現を部分ごとに分解してみましょう:

  1. ^ は行の始まりを意味します。

  2. (?!.*//) は否定的先読みアサーションです。これは、「//」を含む行にはマッチしないことを意味します。具体的には、行のどこかに「//」があれば、その行は無視されます。

  3. .* は任意の文字が0回以上続くことを意味します。これにより、平仮名の前後にどんな文字があっても構いません。

  4. [ぁ-ん] は、少なくとも1つの平仮名文字にマッチします。この範囲は全ての平仮名をカバーしています。

  5. 最後の .* は、平仮名の後に続く任意の文字列にマッチします。

  6. $ は行の終わりを意味します。

他のケースの例

  1. カタカナを含む行を検索する:

    ^[^\x00-\x7F]*[ァ-ン]+[^\x00-\x7F]*$
    

    この正規表現は、カタカナを含む行にマッチします。ASCII文字(英数字など)を含まない行にのみマッチするようにしています。

  2. 英数字のみを含む行を検索する:

    ^[A-Za-z0-9]+$
    

    この正規表現は、英字と数字のみを含む行にマッチします。

  3. 特定の単語を含まない行を検索する:

    ^(?!.*特定の単語).+$
    

    この正規表現は、「特定の単語」を含まない任意の行にマッチします。

正規表現は非常に柔軟で強力なツールですが、複雑になりがちなので、使い始める際には少し練習が必要です。しかし、基本を理解すれば、テキストデータの検索や処理を大幅に効率化できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?