如何编写正则表达式捕获无末尾下划线的目标文件名前缀
解决方案
要提取文件名前缀且不保留末尾下划线,可直接修改正则表达式为:
^[a-zA-Z_]+(?<!_)(?=(_\d+)?\.(csv|json))
正则规则说明
^:匹配字符串起始位置[a-zA-Z_]+:匹配一个或多个字母或下划线,覆盖前缀里的合法字符(包括连续下划线)(?<!_):负向后断言,确保匹配的前缀末尾不是下划线,直接排除多余的末尾下划线(?=(_\d+)?\.(csv|json)):正向前断言,指定前缀后的合法后缀格式:(_\d+)?:可选的下划线加一个或多个数字,对应文件名里的_0、_0000这类结构\.(csv|json):匹配文件扩展名的开头(.加上csv或json)
匹配结果验证
对目标文件名的提取结果完全符合需求:
cache_realm_report__hourly_0.json→ 提取cache_realm_report__hourlyfilters_0000.json→ 提取filtershow_we_feel_emotions.csv→ 提取how_we_feel_emotions
内容的提问来源于stack exchange,提问作者mcansado
相关产品推荐
相关产品推荐

