如何用正则从JSON文件路径中提取*-alert.json前的名称
正则提取文件路径中的目标名称
需求说明
给定以下两条Windows风格文件路径:
- env\nonprod\alert\prj-data-02\alt\airflow-alert.json
- env\nonprod\alert\prj-data-02\alt\bigquery-alert.json
需要提取每条路径中*-alert.json前面的单词(如第一条取airflow,第二条取bigquery)。
正则表达式方案
可以使用以下正则表达式精准匹配目标内容:
(?<=\\)[a-zA-Z]+(?=-alert\.json)
正则规则解释
(?<=\\):正向预查,匹配路径中最后一个反斜杠(正则中反斜杠需转义为\\),确保只提取文件名部分的内容[a-zA-Z]+:匹配由大小写字母组成的目标名称(若需支持数字或下划线,可修改为[a-zA-Z0-9_]+)(?=-alert\.json):正向预查,匹配紧跟在目标名称后的-alert.json后缀(.在正则中需转义为\.)
代码示例(Python)
import re # 待处理的路径列表 file_paths = [ r"env\nonprod\alert\prj-data-02\alt\airflow-alert.json", r"env\nonprod\alert\prj-data-02\alt\bigquery-alert.json" ] # 编译正则表达式 pattern = re.compile(r"(?<=\\)[a-zA-Z]+(?=-alert\.json)") # 遍历提取目标名称 for path in file_paths: result = pattern.search(path) if result: print(result.group())
运行后输出:
airflow bigquery
内容的提问来源于stack exchange,提问作者adithyar24200
相关产品推荐
相关产品推荐

