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

正则表达式提取字符串求助:如何从给定JavaScript字符串获取指定结果?

解决正则表达式提取问题

你的问题出在原正则只捕获了第一个单引号对的内容,因为\('(.+?)'\)的非贪婪匹配会在遇到第一个'就停止。正确的做法是提取所有单引号内的内容,再拼接替换。

正确代码实现

import re

item = "JavaScript:muestra('01','043','071','01','600%2D2023%2DSUNARP%2DTR')"
# 提取所有单引号包裹的内容
captured_parts = re.findall(r"'([^']+)'", item)
# 拼接所有片段并将%2D替换为-
final_result = ''.join(captured_parts).replace('%2D', '-')
print(final_result)

正则说明

r"'([^']+)'" 的作用:

  • ':匹配单引号的起始和结束标记
  • ([^']+):捕获一组非单引号的字符,确保每个匹配都是单个引号内的完整内容
  • findall 会返回所有符合条件的捕获结果,形成包含5个目标片段的列表

运行这段代码后,就能得到你期望的结果:0104307101600-2023-SUNARP-TR

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 02:36:15