python - 在 python 正则表达式中转义括号
问题描述
我正在通过对其应用一系列转换来修改字符串数组。其中一种转换是将括号中的国家名称与该国家的全名交换。例如:
Foo (GB) -> Foo 英国
我有一个形式的转换对象数组:
conversion.input_str = '(GB)'
conversion.output_str = 'Great Britain'
我正在尝试使用正则表达式来做到这一点,如下所示:
for conv in conversions:
match_expr = re.compile(rf'(\s|\b){conv.input_str}(\s|\b)')
converted_str = re.sub(match_expr, conv.output_str, str_to_convert)
\s 和 \b 用于防止与单词内部字符串匹配。我所有的转换都有效,除了括号之一。
如果我使用 plain conv.input_str
,我会得到 Foo () 的输出
如果我尝试使用re.escape(conv.input_str)
它进行转义似乎会创建正确的 match_expr 但会给我 Foo(GB)。
我究竟做错了什么?
解决方案
推荐阅读
- python - 如何从 Windows 主机上的 docker 容器内部执行 docker 命令
- java - 无法从 CompletableFuture 中的异常传播自定义异常
- node.js - 如何在帖子中显示评论。使用 Node、express 和 mongodb
- maven - 无法解决 maven microsoft sqlserver jre8 依赖项
- java - 使用诸如“OPE”之类的语法时,字符串到数字的转换失败=?
- tableau-api - Tableau 中的 EXCEL COUNTIFS() 等效项?
- python - 将复杂的excel公式转换为Python公式
- jena - Jena Fuseki Vs 大师
- xamarin - XAML 热重载已禁用,因为在我更新后它需要更新版本的 Xamarin.Forms
- laravel - 如何修复“此集合实例上不存在属性 [id]。” 当我将参数传递给 Api 资源时?