You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取字符串中filename/后出现的所有8位目标字符串?

嘿,这个需求用正则表达式就能轻松搞定!核心思路是匹配所有filename/后面紧跟的8位字符串,下面是几种常见编程语言的实现方案:

JavaScript 实现

你可以用正则的全局匹配结合exec方法来遍历所有符合条件的内容:

const str = "Test/hello/filename/12345678/first Hddhkhd Hdhal filename/1212abcd/second";
// 正则匹配filename/后接的8位字母数字,全局标志g确保找全所有匹配
const regex = /filename\/([A-Za-z0-9]{8})/g;
const strArr = [];
let matchResult;

// 循环执行exec,直到找不到匹配项
while ((matchResult = regex.exec(str)) !== null) {
  // 捕获组1就是我们要的8位字符串
  strArr.push(matchResult[1]);
}

console.log(strArr); // 输出:["12345678", "1212abcd"]

Python 实现

Python的re.findall方法更简洁,它会直接返回所有捕获到的内容组成的列表:

import re

str_content = "Test/hello/filename/12345678/first Hddhkhd Hdhal filename/1212abcd/second"
# 用原始字符串避免转义问题,捕获filename/后的8位字母数字
pattern = r"filename\/([A-Za-z0-9]{8})"
str_arr = re.findall(pattern, str_content)

print(str_arr) # 输出:['12345678', '1212abcd']

补充说明

如果你的8位字符串可能包含字母数字以外的字符(比如下划线),可以把正则里的[A-Za-z0-9]换成\w(匹配字母、数字、下划线);如果需要匹配任意字符(除换行外),可以换成.,但要注意这种写法可能会匹配到意外的内容,建议根据实际需求调整正则的匹配范围。

内容的提问来源于stack exchange,提问作者Kobi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:35:24