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

正则表达式提取字符串等号后所有值,含最后值及提取DISPLAY4

解决方法

一步到位的正则方案

直接用这个正则表达式,就能同时提取所有=后的取值,并且自动把name字段里的DISPLAY4单独提取出来:

=(?:'\\\\\.\\(DISPLAY\d+)'|([^,]+))

Python代码示例

import re

# 目标字符串
target_str = "x=0, y=0, width=1920, height=1080, width_mm=531, height_mm=299, name='\\\\.\\DISPLAY4', is_primary=True"
# 匹配所有结果
match_results = re.findall(r"=(?:'\\\\\.\\(DISPLAY\d+)'|([^,]+))", target_str)
# 合并分组的有效内容
final_values = [item[0] if item[0] else item[1] for item in match_results]

print(final_values)

运行后输出:

['0', '0', '1920', '1080', '531', '299', 'DISPLAY4', 'True']

正则逻辑说明

这个正则用了分支匹配,覆盖两种场景:

  • 第一种场景:匹配name字段的带引号格式,精准捕获里面的DISPLAY+数字部分
  • 第二种场景:匹配其他所有字段,直接捕获等号后到逗号(或字符串结尾)的内容,自然包含最后一项True

更易读的简化方案

如果觉得分支正则有点绕,也可以分两步处理:先提取所有原始值,再单独处理name字段:

import re

target_str = "x=0, y=0, width=1920, height=1080, width_mm=531, height_mm=299, name='\\\\.\\DISPLAY4', is_primary=True"
# 先提取所有=后的内容,用(?:,|$)匹配分隔符(逗号或结尾),确保拿到最后一项
raw_values = re.findall(r"=(.*?)(?:,|$)", target_str)

final_values = []
for val in raw_values:
    # 识别name字段的格式,提取DISPLAY4
    if val.startswith("'\\\\.\\DISPLAY"):
        final_values.append(val.split('\\')[-1].strip("'"))
    else:
        final_values.append(val)

print(final_values)

输出结果和之前一致。

内容的提问来源于stack exchange,提问作者Patrick T.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 14:50:28