正则表达式提取字符串求助:如何从给定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
相关产品推荐
相关产品推荐

