如何让PyCharm为regex模块提供re模块同款正则语法高亮?
解决PyCharm中regex模块正则字符串的语法高亮问题
一、自定义全局语言注入规则(推荐)
这是最接近原生re模块体验的方案,配置后所有regex模块的正则参数都会自动获得语法高亮:
- 打开PyCharm设置(快捷键
Ctrl+Alt+S/Cmd+,) - 导航到Languages & Frameworks > Language Injections
- 点击右上角的
+号,选择Python作为注入上下文 - 在配置窗口中填写以下内容:
- ID:自定义一个标识即可,比如
regex_module_highlight - Places Patterns:添加精准匹配规则(如果用
import regex as re,就把规则里的regex替换成re):- 匹配
regex.compile()的参数:regex\.compile\((.*)\),捕获组选择$1 - 匹配
regex.match()/search()/fullmatch()等方法的第一个参数:regex\.(match|search|fullmatch|findall|finditer)\((.*?),,捕获组选择$2
- 匹配
- Injected Language:选择
Regexp
- ID:自定义一个标识即可,比如
- 保存配置后重启PyCharm,规则即可生效
这种方式完美兼容re.X等标志,也不会误识别普通字符串。
二、单行临时标记(适合零散代码场景)
如果不想配置全局规则,可给单个正则字符串添加单行注释(注意注释要和字符串紧挨着):
# language=RegExp pattern = r"\d{3}-\d{4}" result = regex.match(pattern, "123-4567")
带re.X的多行正则也能正常支持:
# language=RegExp pattern = r""" \d{3} # 区号 - # 分隔符 \d{4} # 号码 """ result = regex.match(pattern, "123-4567", flags=regex.X)
注意事项
- 全局规则要尽量精准匹配方法调用,避免将普通字符串误识别为正则表达式
- PyCharm版本更新后如果规则失效,可重新进入Language Injections面板检查配置
内容的提问来源于stack exchange,提问作者Sul4ur
相关产品推荐
相关产品推荐

