atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
Intro to Python
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
Intro to Python
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
Intro to Python
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • Intro to Python
  • 正規表現

Intro to Python

正規表現

最終更新:2025年05月08日 21:32

introtopython

- view
管理者のみ編集可

目次

  • 目次
  • 文字列が指定の正規表現パターンとマッチするか否か調べる
  • 特定の文字列で始まる(始まらない)文字列を抽出する
  • 特定の文字列で終わる(終わらない)文字列を抽出する

文字列が指定の正規表現パターンとマッチするか否か調べる

reモジュールのsearch関数を使う。指定した正規表現パターンとマッチするとMatchオブジェクトを返し、マッチしないとNoneを返す。戻り値はブール型ではとそれぞれTrueとFalseになるので、そのままブール式として利用できる。

>>> import re
>>> s = '和多田美咲さん'
>>> print(re.search('美咲さん$', s))
<re.Match object; span=(3, 7), match='美咲さん'>
>>> print(re.search('^和', s))
<re.Match object; span=(0, 1), match='和'>
>>> print(re.search('和$', s))
None
>>> bool(re.search('美咲さん$', s))
True
>>> bool(re.search('和$', s))
False

複数を一度に調べたいときは、リストにしてリスト内包表記を使う。

>>> ss = ['石見舞菜香', '鈴木みのり', '瀬戸麻沙美', '和多田美咲']
>>> [s for s in ss if re.search('美', s)]
['瀬戸麻沙美', '和多田美咲']
>>> [s for s in ss if re.search('美$', s)]
['瀬戸麻沙美']
>>> [s for s in ss if re.search('希世乃', s)]
[]
>>> len([s for s in ss if re.search('美', s)])
2
>>> len([s for s in ss if re.search('希世乃', s)])
0

特定の文字列で始まる(始まらない)文字列を抽出する

正規表現で^記号は文字列の先頭を表すため、これを正規表現パターンに利用する。以下の例では、複数の文字列からなるリストから、リスト内包表記を使用して、指定した正規表現パターンにマッチする(しない)要素を取り出している。

>>> import re
>>> ss = ['石見舞菜香', '鈴木みのり', '瀬戸麻沙美', 'のぐちゆり', '和多田美咲']
>>> # 「美」で終わる氏名
>>> [s for s in ss if re.search('美$', s)]
['瀬戸麻沙美']
>>> # 「美」で終わらない氏名
>>> [s for s in ss if not re.search('美$', s)]
['石見舞菜香', '鈴木みのり', 'のぐちゆり', '和多田美咲']
>>> # 「美」を含むが「美」で終わらない氏名
>>> [s for s in ss if re.search('美.+$', s)]
['和多田美咲']

ルックアラウンド式(lookaround expression)を使うこともできる。

>>> # 「美」で終わる氏名 ※肯定的な後読み
>>> [s for s in ss if re.search('(?<=美)$', s)]
['瀬戸麻沙美']
>>> # 「美」で終わらない氏名 ※否定的な後読み
>>> [s for s in ss if re.search('(?<!美)$', s)]
['石見舞菜香', '鈴木みのり', 'のぐちゆり', '和多田美咲']

ルックアラウンド式については、以下のページの「Lookaround の概要」を参照のこと。

  • https://learn.microsoft.com/ja-jp/dotnet/standard/base-types/regular-expression-language-quick-reference#lookarounds-at-a-glance

特定の文字列で終わる(終わらない)文字列を抽出する

正規表現で$記号は文字列の最後を表すため、これを正規表現パターンに利用する。以下の例では、複数の文字列からなるリストから、リスト内包表記を使用して、指定した正規表現パターンにマッチする(しない)要素を取り出している。

>>> import re
>>> ss = ['石見舞菜香', '鈴木みのり', '瀬戸麻沙美', 'のぐちゆり', '和多田美咲']
>>> # 「の」で始まる氏名
>>> [s for s in ss if re.search('^の', s)]
['のぐちゆり']
>>> # 「の」で始まらない氏名
>>> [s for s in ss if not re.search('^の', s)]
['石見舞菜香', '鈴木みのり', '瀬戸麻沙美', '和多田美咲']
>>> # 「の」を含むが「の」で始まらない氏名
>>> [s for s in ss if re.search('^.+の', s)]
['鈴木みのり']

ルックアラウンド式(lookaround expression)を使うこともできる。

>>> # 「の」で始まる氏名 ※肯定的な先読み
>>> [s for s in ss if re.search('^(?=の)', s)]
['のぐちゆり']
>>> # 「の」で始まらない氏名 ※否定的な先読み
>>> [s for s in ss if re.search('^(?!の)', s)]
['石見舞菜香', '鈴木みのり', '瀬戸麻沙美', '和多田美咲']

ルックアラウンド式については、以下のページの「Lookaround の概要」を参照のこと。

  • https://learn.microsoft.com/ja-jp/dotnet/standard/base-types/regular-expression-language-quick-reference#lookarounds-at-a-glance
「正規表現」をウィキ内検索
LINE
シェア
Tweet
Intro to Python
記事メニュー

メニュー

  • トップページ
  • 画面出力と入力
  • 変数とオブジェクト
  • 演算子と制御構文
  • リスト
  • 数と式
  • 文字と文字列
  • 正規表現
  • 行列
  • 日付と時刻
  • ファイル・ディレクトリの操作
  • テキストファイルの入出力
  • 画像
  • 実行とデバッグ
  • 数学
  • NumPy
  • エラーメッセージ
  • 環境
  • テキストマイニング
  • インターネット
  • Anaconda
  • その他

ここを編集
記事メニュー2

更新履歴

取得中です。


ここを編集
人気記事ランキング
  1. エラーメッセージ
もっと見る
最近更新されたページ
  • 2日前

    正規表現
  • 31日前

    メニュー
  • 34日前

    インターネット
  • 34日前

    画像
  • 49日前

    演算子と制御構文
  • 49日前

    変数とオブジェクト
  • 59日前

    リスト
  • 60日前

    Anaconda
  • 61日前

    ファイル・ディレクトリの操作
  • 61日前

    テキストファイルの入出力
もっと見る
人気記事ランキング
  1. エラーメッセージ
もっと見る
最近更新されたページ
  • 2日前

    正規表現
  • 31日前

    メニュー
  • 34日前

    インターネット
  • 34日前

    画像
  • 49日前

    演算子と制御構文
  • 49日前

    変数とオブジェクト
  • 59日前

    リスト
  • 60日前

    Anaconda
  • 61日前

    ファイル・ディレクトリの操作
  • 61日前

    テキストファイルの入出力
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. R.E.P.O. 日本語解説Wiki
  2. VCR GTA3まとめウィキ
  3. ドタバタ王子くん攻略サイト
  4. Mrs. GREEN APPLE 未発表曲wiki
  5. STAR WARS ジェダイ:サバイバー攻略 @ ウィキ
  6. ありふれた職業で世界最強 リベリオンソウル @ ウィキ
  7. アサシンクリードシャドウズ@ ウィキ
  8. パズル&コンクエスト(Puzzles&Conquest)攻略Wiki
  9. あめの隠れ家
  10. ドラゴンボール Sparking! ZERO 攻略Wiki
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. oblivion xbox360 Wiki
  5. 初音ミク Wiki
  6. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  7. 検索してはいけない言葉 @ ウィキ
  8. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  9. SDガンダム ジージェネレーションクロスレイズ 攻略Wiki
  10. 英傑大戦wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. クエスト - oblivion xbox360 Wiki
  3. 魔法屋 - oblivion xbox360 Wiki
  4. 超越ヶ谷 にかり - ストグラ まとめ @ウィキ
  5. 捌木 たいたい - ストグラ まとめ @ウィキ
  6. ロスサントス警察 - ストグラ まとめ @ウィキ
  7. anbrella(餡ブレラ) - ストグラ まとめ @ウィキ
  8. ドクトル・ホグバック(ONE PIECE) - アニヲタWiki(仮)
  9. NO LIMIT - ストグラ まとめ @ウィキ
  10. サーヴァント/一覧/クラス別 - Fate/Grand Order @wiki 【FGO】
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.