正则表达式(Regular Expression,简称 regex)是用一串特殊字符描述文本模式的规则,用于查找、提取、校验和替换文本。下面重点说明分步结果。
正则表达式匹配结果演示
输入:正则 ^\d{17}[\dXx]$,文本“11010519491231002X”
匹配结果:“11010519491231002X”
说明:18 位身份证号格式。
输入:正则 [\u4e00-\u9fff]+,文本“abc中文123问”
匹配结果:“中文”、“问”
说明:连续的汉字。
Python 示例
下面是 Python 中处理正则表达式的常用写法:
import re
re.fullmatch(r"1[3-9]\d{9}", "13812345678") is not None # True
re.findall(r"\d{4}-\d{2}-\d{2}", "2026-11-11 和 2026-11-12")
re.sub(r"\s+", " ", "a b\tc") # 'a b c'运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。
怎么选
格式校验、提取有固定模式的字段用正则;解析嵌套结构用解析器;处理用户输入的正则或长文本时,选择 RE2 这类线性引擎或限制执行时间,防止 ReDoS。
正则与字符串函数:简单的包含、开头、结尾判断用 includes / startswith 更快更清楚;复杂模式才用正则。正则与解析器:HTML、JSON 这类嵌套结构应该用专门的解析器,正则只适合简单提取。
本站的正则表达式测试工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【正则怎么匹配中文?】用 [\u4e00-\u9fff] 匹配常用汉字;需要包括扩展区时用 \p{Script=Han}(JavaScript 需 u 标志)。
【贪婪和非贪婪有什么区别?】贪婪(.*)尽量多匹配,非贪婪(.*?)尽量少匹配。
【为什么校验总是通过?】可能没有加 ^ 和 $,只要文本中包含符合的部分就会通过。
文中示例可以在本站对应工具中验证;处理密码、证件号等敏感数据时,请注意保护隐私。