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

如何在Robot Framework中使用正则验证动态文本格式?

Robot Framework动态文本格式验证的正则修正方案

需求说明

需要验证一段包含动态内容(<strong>标签包裹的部分)的文本格式,仅校验格式正确性,不关注具体内容。目标文本如下:

"We will start the activity at 308 JAMES ST, WARREN RI 02885, effective 05/07/2023.
A downpayment of $12.34 is required to participate in it.
Interested users can register from 04/06/2023 in between 8:00 AM to 05:00 PM everyday."

原代码问题分析

  1. 未考虑文本中的<strong>标签,正则直接匹配动态内容的裸文本,与实际获取的文本结构不符
  2. 部分正则逻辑冗余(比如日期部分用了过于复杂的科学计数法正则),不符合目标格式的匹配需求
  3. 未处理文本中的换行和空格差异,容易匹配失败

修正后的实现代码

# 定义匹配完整文本格式的正则表达式
${Regex}=  Set Variable  ^We will start the activity at <strong>\d+ [A-Za-z]+( [A-Za-z]+)*, [A-Za-z]+ [A-Za-z]+\s\d{5}</strong>, effective <strong>\d{2}/\d{2}/\d{4}</strong>\.\s*A downpayment of <strong>\$\d+\.\d{2}</strong> is required to participate in it\.\s*Interested users can register from <strong>\d{2}/\d{2}/\d{4}</strong> in between <strong>\d{1,2}:\d{2} [AP]M to \d{1,2}:\d{2} [AP]M</strong> everyday\.$

# 获取元素的显示文本(替换为你的实际XPath)
${Original text}=  Get Element Text  //xpath/to/target/element

# 验证文本格式是否匹配正则
Should Match Regexp  ${Original text}  ${Regex}

正则各部分说明

  • ^ 和 $:确保正则匹配整个文本,避免部分内容匹配通过
  • <strong>...</strong>:对应文本中包裹动态内容的标签,必须完整匹配
  • 地址部分:<strong>\d+ [A-Za-z]+( [A-Za-z]+)*, [A-Za-z]+ [A-Za-z]+\s\d{5}</strong>
    匹配格式:数字开头 + 街道名称(支持多单词) + 城市 + 州 + 5位邮编
  • 日期部分:<strong>\d{2}/\d{2}/\d{4}</strong>
    严格匹配MM/DD/YYYY格式的日期
  • 金额部分:<strong>\$\d+\.\d{2}</strong>
    匹配美元格式:$开头 + 整数部分 + 两位小数
  • 时间范围部分:<strong>\d{1,2}:\d{2} [AP]M to \d{1,2}:\d{2} [AP]M</strong>
    匹配12小时制的时间范围(支持1位或2位小时数)
  • \s*:匹配任意数量的空白字符(包括换行、空格),兼容文本中的换行和排版差异

注意事项

  • 若原文本中的<strong>标签是HTML元素,使用Get Element Text会自动去除标签,只返回纯文本。这种情况下需要调整正则,去掉<strong>部分,直接匹配动态内容格式:
    调整后的正则示例:
    ^We will start the activity at \d+ [A-Za-z]+( [A-Za-z]+)*, [A-Za-z]+ [A-Za-z]+\s\d{5}, effective \d{2}/\d{2}/\d{4}\.\s*A downpayment of \$\d+\.\d{2} is required to participate in it\.\s*Interested users can register from \d{2}/\d{2}/\d{4} in between \d{1,2}:\d{2} [AP]M to \d{1,2}:\d{2} [AP]M everyday\.$
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:23:16