Python 和 Java 正则怎么写 - 跨语言正则语法对照
555 字
3 分钟
Python 和 Java 正则怎么写 - 跨语言正则语法对照
🌟 同一个正则,换个语言就报错
正则的”核心语法”在各语言里大体通用,但字符串转义、命名组、Flags 的写法常常不同。把 JavaScript 里写好的正则直接复制到 Python/Java,经常踩坑。本文做一份对照。
🐍 Python 正则(re 模块)
import re
pattern = r"\d{4}-\d{2}-\d{2}" # 用原始字符串,避免转义m = re.search(pattern, text)if m: print(m.group())要点:
- 原始字符串
r"...":正则里的\d直接写,不用双反斜杠; - 命名组:
(?P<name>\d+),取值m.group("name"); - Flags:
re.IGNORECASE(re.I)、re.MULTILINE(re.M)、re.DOTALL(re.S); - 反向引用:
\1或(?P=name)。
☕ Java 正则(Pattern / Matcher)
import java.util.regex.*;
Pattern p = Pattern.compile("\\d{4}-\\d{2}-\\d{2}");Matcher m = p.matcher(text);while (m.find()) { System.out.println(m.group());}要点:
- 字符串里反斜杠要双写:
\\d(因为 Java 字符串本身要转义); - 命名组:
(?<name>\d+),取值m.group("name"); - Flags:
Pattern.CASE_INSENSITIVE、Pattern.MULTILINE、Pattern.DOTALL,可位或组合; - 反向引用:
\1或\k<name>。
📋 关键差异对照
| 项目 | JavaScript | Python | Java |
|---|---|---|---|
| 字面量 | /re/flags | r"re" | "re"(双反斜杠) |
| 命名组 | (?<name>) | (?P<name>) | (?<name>) |
| 命名组取值 | m.groups.name | m.group("name") | m.group("name") |
| 忽略大小写 | i | re.I | Pattern.CASE_INSENSITIVE |
| 多行 | m | re.M | Pattern.MULTILINE |
| DotAll | s | re.S | Pattern.DOTALL |
| 后顾 | 支持 | 需固定宽度 | 支持(有限制) |
⚠️ 迁移注意
- 转义层级:JS 字面量最省心;Python 用
r"";Java 必须双写; - 命名组语法不同:Python 是
(?P<name>),JS/Java 是(?<name>); - 后顾宽度:部分语言要求固定宽度,变量长度后顾可能不支持;
- Unicode:默认行为与标志位因语言而异,处理中文时留意。
用多语言引擎可以查看各语言写法与兼容性提示。
🔧 常见问题
为什么 Java 里要写两个反斜杠?
Java 字符串本身把 `\` 当转义符,所以正则的 `\d` 要写成 `\\d` 才能传给正则引擎。Python 一定要用 r 前缀吗?
不是必须,但强烈建议。`r"\d"` 比 `"\\d"` 更清晰、少出错。正则能跨语言复制吗?
基础语法可以;命名组、Flags、后顾等需要按目标语言调整。💬 总结
跨语言写正则,记住三件事:转义层级、命名组语法、Flags 名称。先在正则测试器里验证逻辑,再按目标语言调整写法。
立即体验:访问 多语言引擎
相关资源
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
最后更新于 2026-09-13,距今已过 33 天
部分内容可能已过时
相关文章 智能推荐
1
正则表达式语法速查表 - 元字符/量词/断言/Flags 大全
正则工具 正则表达式语法速查:元字符、字符类、量词、分组、断言、边界、转义与 Flags 一览,含含义与示例,适合随时查阅。附在线正则速查与测试工具。
2
正则表达式教程 - 从零入门到常用语法(系统整理)
正则工具 正则表达式系统教程:从字符、量词、分组、锚点到断言与 Flags,循序渐进讲解,配大量示例、实战练习与常见错误,适合零基础入门与查漏补缺。附在线正则学习与测试工具。
3
密码正则和用户名正则怎么写 - 强度校验实例
正则工具 密码正则、用户名正则怎么写?本文给出不同强度密码(含大小写/数字/特殊字符)的正则、用户名规则正则,并用前瞻断言实现"至少包含"条件。附在线常用格式正则工具。
4
手机号正则和邮箱正则怎么写 - 常用正则表达式示例大全
正则工具 手机号正则、邮箱正则、身份证正则、URL正则、银行卡正则怎么写?给出可直接复制使用的表达式、逐段解释与正误示例,覆盖网络/联系/身份/日期/数字/字符/开发场景,并说明各语言引擎差异。附在线常用格式正则工具。
5
正则匹配中文怎么写 - 汉字/中文标点匹配方法
正则工具 正则怎么匹配中文?本文给出汉字范围 [\u4e00-\u9fa5] 与 Unicode 属性 \p{Script=Han} 两种写法,说明中文标点、全角字符、长度统计的注意点。附在线正则测试工具。
随机文章 随机推荐