正規表現を智能生成・解説し、様々な一般的なパターンマッチングをサポート
テキスト指示を数式に変換するか、数式の説明を取得します。
AIと会話してオンラインでExcelを編集します
テキスト指示をSQLクエリに変換します。
タスクを自動化し、Microsoft Excel内でカスタムソリューションを作成するためのExcel VBAコードを生成します。
Excelファイルをアップロードし、AIを使用して美しいチャートを生成します。
テキストを美しいマインドマップに変換します。簡単に編集・カスタマイズできます。
AIを使用して正規表現を智能生成・解説し、様々なテキストパターンマッチングとデータ検証をサポートします。
テキストの説明から美しい画像を生成するAIを使用します。無料です!
正規表現はテキスト処理のための強力なツールであり、Pythonのデータ分析、ウェブスクレイピング、ログ処理などの分野で幅広く使用されています。このチュートリアルでは、Pythonのreモジュールを体系的に習得し、実際の例を通じてテキストデータを効率的に処理する方法をデモンストレーションします。
正規表現はデータ処理において重要な役割を果たします:
研究によると、専門的な開発者はテキスト処理タスクで正規表現を使用することで、特に複雑なテキストパターンを扱う場合に作業効率を大幅に向上させることができます。
import re
pattern = r"hello"
text = "hello world"
result = re.match(pattern, text)
if result:
print("マッチ成功:", result.group()) # 出力: hello
text = "Python最新バージョン3.9发布了" # Note: Keeping original string data
match = re.search(r'\d+.\d+', text)
if match:
print("バージョン番号を発見:", match.group()) # 出力: 3.9
contact_info = "邮箱: [email protected], 客服: [email protected]" # Note: Keeping original string data
emails = re.findall(r'[\w\.-]+@[\w\.-]+', contact_info)
print(emails) # ['[email protected]', '[email protected]']
文字 | 機能説明 | 実際の例 |
---|---|---|
. | 任意の一文字にマッチ | a.c → “abc” |
\d | 数字文字にマッチ | \d\d → “42” |
\w | 単語文字にマッチ | \w+ → “Var123” |
\s | 空白文字にマッチ | a\sb → “a b” |
量指定子 | マッチングルール | 典型的な使用例 |
---|---|---|
* | ゼロ回以上繰り返す | a*b → “b”, “aaaab” |
+ | 一回以上繰り返す | a+b → “ab”, “aaaab” |
{n,m} | n回からm回繰り返す | a{2,4}b → “aab”, “aaaab” |
log_entry = "2023-05-15 14:30:22 [ERROR] System crash"
match = re.match(r'(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2}) \[(\w+)\]', log_entry)
if match:
date, time, level = match.groups()
print(f"エラー発生日時: {date} {time}, レベル: {level}")
html_content = "<p>第一段</p><p>第二段</p>" # Note: Keeping original string data
# 貪欲モード
print(re.findall(r'<p>(.*)</p>', html_content))
# 非貪欲モード
print(re.findall(r'<p>(.*?)</p>', html_content))
# 数字が続くPythonを抽出
code_text = "Python3 Python2 Python"
print(re.findall(r'Python(?=\d)', code_text))
# 数字が続かないPythonを抽出
print(re.findall(r'Python(?!\d)', code_text))
contact_text = "办公室: 010-87654321, 手机: 13912345678" # Note: Keeping original string data
phone_numbers = re.findall(r'\b\d{3}-\d{8}\b|\b1[3-9]\d{9}\b', contact_text)
print(phone_numbers) # ['010-87654321', '13912345678']
def check_password_strength(password):
"""パスワードに大文字、小文字、数字が含まれ、長さが8-20文字であるかを検証"""
pattern = r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\w]{8,20}$'
return re.match(pattern, password) is not None
print(check_password_strength("Secure123")) # True
print(check_password_strength("weak")) # False
正規表現の効率向上:
re.compile()
で事前コンパイルする
(?:...)
の使用を優先する
典型的なエラーの防止:
.
, *
, +
,
?
など)は正しくエスケープする必要がある
\u
を使用してマッチさせる
^[w\.-]+@[\w\.-]+\.\w+$
https?://[^\s]+
[\u4e00-\u9fa5]
\d{4}-\d{2}-\d{2}