在线工具

正则表达式测试

简单快速的在线正则表达式测试工具

请输入正则表达式及需要测试的字符串

正则表达式(Regular Expression,简称 regex 或 regexp)是一种强大的文本处理工具,它使用一种特定的模式来描述或匹配一系列符合该模式的字符串。正则表达式广泛应用于各种编程语言、文本编辑器、搜索引擎等工具中,用于文本搜索、替换、验证等操作。

以下是一些正则表达式的基本概念及示例:

基本概念

  1. 字符类(Character Class)

    • .:匹配除换行符 \n 之外的任何单个字符。
    • [abc]:匹配 abc 中的任意一个字符。
    • [^abc]:匹配除 abc 之外的任意字符。
    • [a-zA-Z]:匹配任意英文字母(大小写皆可)。
    • [0-9]:匹配任意数字。
  2. 量词(Quantifiers)

    • *:匹配前面的字符零次或多次。
    • +:匹配前面的字符一次或多次。
    • ?:匹配前面的字符零次或一次。
    • {n}:匹配前面的字符恰好 n 次。
    • {n,}:匹配前面的字符至少 n 次。
    • {n,m}:匹配前面的字符至少 n 次,但不超过 m 次。
  3. 分组(Grouping)

    • (abc):将 abc 当作一个整体进行匹配。
    • |:表示“或”操作,例如 a|b 匹配 ab
  4. 转义字符(Escape Characters)

    • \.:匹配 . 字符。
    • *:匹配 * 字符。
    • \:匹配 \ 字符本身(在大多数实现中)。
  5. 边界匹配(Boundary Matchers)

    • ^:匹配字符串的开始位置。
    • $:匹配字符串的结束位置。
    • \b:匹配单词边界(单词字符和非单词字符之间的位置)。
    • \B:匹配非单词边界。

示例

  1. 匹配邮箱地址

    [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
    
  2. 匹配IP地址

    ((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
    
  3. 匹配包含数字的字符串

    .*[0-9].*
    
  4. 匹配以“http://”或“https://”开头的URL

    (https?://[^\s/$.?#].[^\s]*)
    

使用示例(Python)

在Python中,正则表达式通过re模块实现。以下是一个简单的例子,展示如何使用正则表达式匹配并提取邮箱地址:

import re

text = "Please contact us at support@example.com for further information."

# 匹配邮箱地址的正则表达式
pattern = r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'

# 使用findall方法查找所有匹配的邮箱地址
matches = re.findall(pattern, text)

print(matches)  # 输出: ['support@example.com', 'sales@example.org']

总结

正则表达式是一种强大且灵活的文本处理工具,但需要一定的学习和练习才能掌握。通过理解基本的概念和模式,你可以创建强大的正则表达式来解决各种文本处理任务。