Python 3.7正则表达式去除带$前缀的花括号及$符号
解决方案:移除${}格式字符串的$和外层花括号
核心思路
用正则精准匹配${...}格式的字符串,捕获内部内容后替换为仅保留该内容,不影响其他带花括号的元素。
正则表达式
r'\$\{([^{}]+)\}'
\$:转义匹配$符号(避免被当作正则特殊字符)\{:转义匹配左花括号([^{}]+):捕获组,匹配任意非花括号的字符序列(确保只提取${}内部的有效内容)\}:转义匹配右花括号
Python 3.7 Notebook 示例代码
import re # 模拟Oozie工作流转JSON后的输入字符串 input_str = '{"workflow_url": "${xyz.com:8088}", "config_param": "{default_value}", "hdfs_path": "${hdfs://namenode:9000/user/data}"}' # 执行替换操作 processed_str = re.sub(r'\$\{([^{}]+)\}', r'\1', input_str) print(processed_str)
输出结果
{"workflow_url": "xyz.com:8088", "config_param": "{default_value}", "hdfs_path": "hdfs://namenode:9000/user/data"}
注意事项
- 该正则适用于Oozie变量无嵌套花括号的常规场景,若存在嵌套花括号的特殊情况,需调整正则逻辑(此类场景极少)
- Python 3.7的
re模块完全支持该写法,可直接在Notebook中运行
内容的提问来源于stack exchange,提问作者Odisseo
相关产品推荐
相关产品推荐

