如何利用 Robot Framework 编写正则表达式来查找/替换各种日期字符串

2023-12-23

我使用机器人框架进行自动化测试,将文件读入变量。我正在解析该变量的各种日期格式,并尝试使用正则表达式将日期替换为当前日期。

我正在努力解决的是让正则表达式在机器人框架中工作(我已经在各种网站(如 pythex 和 regex101)中编写了正则表达式,它们似乎可以与 Python 一起使用以满足我的需要)。

${date}=  get current date
${datetime}=  convert date    ${date}  datetime
${MonthList}=  create list  January  February  March  April  May  June  July  August  September  October  November  December
${monthName}=  get from list  ${MonthList}  ${datetime.month-1}    
${ExpectedFileAsString}=  set test variable  January 23, 2009 May 1, 2020 05/21/1990 05/1/1990 5/21/1990 5/2/1990

${ExpectedFileAsString}=  replace string using regexp  ${ExpectedFileAsString}  ([A-Z][a-z]+\s\d+,\s\d\d\d\d)  ${monthName} ${datetime.day}, ${datetime.year}

${match1}=  get regexp matches  ${ExpectedFileAsString}  [A-Z][a-z]+\s\d+,\s\d\d\d\d
log  matches 1: ${match1}  console=yes

${match2}=  get regexp matches  ${ExpectedFileAsString}  [A-Z][a-z]{2,8}\s\d{1,2},\s\d{4}
log  matches 2: ${match2}  console=yes

${ExpectedFileAsString}=  replace string using regexp  ${ExpectedFileAsString}  ([A-Z][a-z]{2,8}\s\d{1,2},\s\d{4})  ${monthName} ${datetime.day}, ${datetime.year}

${ExpectedFileAsString}=  replace string using regexp  ${ExpectedFileAsString}  (?<![/\d])\d{1,2}/\d{1,2}/\d{4}(?![/\d])  ${datetime.month}/${datetime.day}/${datetime.year}

当我使用示例中提供的正则表达式与两个正则表达式网站上提供的字符串进行比较时,它们似乎可以完成我需要的一切。当我使用机器人框架运行它们时,它们没有得到任何命中。我肯定错过了什么?


机器人框架在将其用作正则表达式之前会去除一级反斜杠。看标题为“逃脱”的部分 http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#escaping在机器人框架用户指南中。

因此,如果你的表情有类似\s,对于模式匹配器来说,它将显示为普通的s。解决方案是用另一个反斜杠转义反斜杠(例如:\\s\\d+代替\s\d+).

这是一个简短的测试来说明这一点。

*** Variables ***
${Example String}  January 23, 2009

*** Test Cases ***
Example
    Run keyword and expect error
    ...  'January 23, 2009' does not match 'Januarys23'
    ...  Should match regexp  ${Example String}  January\s23

    Should match regexp  ${Example String}  January\\s23
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何利用 Robot Framework 编写正则表达式来查找/替换各种日期字符串 的相关文章

  • 刷新访问令牌时出现“invalid_grant”错误的情况?

    最近我一直在为这个问题揪心 一些背景 使用oauth2客户端 https code google com p google api python client 库来管理用户的令牌 这些令牌用于定期并发执行各种后台任务 每次要为用户运行其中一
  • 错误只有 size-1 数组可以转换为 Python 标量

    我有这个代码 for a in data X for i in a if not i isdigit x hash i data X column row x row row 1 row 0 column column 1 desired
  • Keras,如何获取每一层的输出?

    我已经用 CNN 训练了一个二元分类模型 这是我的代码 model Sequential model add Convolution2D nb filters kernel size 0 kernel size 1 border mode
  • 匹配CSS的正则表达式“<属性>:<值>”

    我从以下位置检索了 CSS 规则document styleSheets现在我正在寻找提取它的属性和值 cssText expl position absolute background color rgb 204 204 204 max
  • 01 无效令牌[重复]

    这个问题在这里已经有答案了 嘿 学习 python3有一段时间了 遇到字典和dictionary name get 方法并尝试获取随机键值 问题 data data get key 1 它有效并且返回 1 但如果我使用data get ke
  • 音乐和弦部分拆分正则表达式

    这是此问题的后续问题 用于匹配音乐和弦的正则表达式 https stackoverflow com questions 11229080 regex for matching a music chord 是我问的 现在我有一个正则表达式来知
  • URL 的正则表达式

    我已经编写了正则表达式来验证 URL 它可以是这样的 example com www example com http www example com http www example com https www example com h
  • 打印一个 Jupyter 单元中定义的所有变量

    有没有一种更简单的方法来以漂亮的方式显示单个单元格中定义的所有变量的名称和值 我现在做的方式是这样的 但是当有30个或更多变量时我浪费了很多时间 您可以使用whos http ipython readthedocs io en stable
  • python 语言环境奇怪的错误。这究竟是怎么回事?

    所以今天我升级到了 bazaar 2 0 2 我开始收到这条消息 顺便说一句 我在雪豹上 bzr warning unknown locale UTF 8 Could not determine what text encoding to
  • 将 JSON 字符串传递给 Django 模板

    我一直在用头撞墙 试图找出为什么我无法将从 Django 模型生成的 JSON 字符串传递到模板的 javascript 静态文件中 事实证明 问题不在模型级别 使用serializers serialize 在脚本本身中放入相同的字符串将
  • Python/Flask:应用程序在关闭后正在运行

    我正在开发一个简单的 Flask Web 应用程序 我使用 Eclipse Pydev 当我开发该应用程序时 由于代码更改 我必须经常重新启动该应用程序 这就是问题所在 当我运行该应用程序时 我可以在本地主机上看到该框架 这很好 但是当我想
  • keras 预测内存交换无限期增加

    我使用keras实现了一个分类程序 我有一大组图像 我想使用 for 循环来预测每个图像 然而 每次计算新图像时 交换内存都会增加 我尝试删除预测函数内部的所有变量 并且我确信该函数内部存在问题 但内存仍然增加 for img in ima
  • 散景中的时间序列流

    我想在散景中绘制实时时间序列 我只想在每次更新时绘制新的数据点 我怎样才能做到这一点 散景网站上有一个动画情节的示例 但它每次都需要重新绘制整个图片 另外 我正在寻找一个简单的示例 我可以在其中逐点绘制时间序列的实时绘图 散景效果0 11
  • 写入 UDP 套接字会被阻塞吗?

    如果是的话 在什么条件下 或者 换句话说 在twisted 中运行此代码是否安全 class StatsdClient AbstractStatsdClient def init self host port super StatsdCli
  • 通过套接字发送字符串(python)

    我有两个脚本 Server py 和 Client py 我心中有两个目标 能够从客户端一次又一次地向服务器发送数据 能够将数据从服务器发送到客户端 这是我的 Server py import socket serversocket soc
  • 如何在包更新之间保留数据文件?

    我正在使用data files的论证setuptools setup 将配置文件安装到 etc和用户主目录 但是更新包pip install
  • tweepy 流到 sqlite 数据库 - 语法错误[重复]

    这个问题在这里已经有答案了 可能的重复 tweepy 流到 sqlite 数据库 语法无效 https stackoverflow com questions 9434205 tweepy stream to sqlite database
  • 通过子类化 `io.TextIOWrapper` 来子类化文件 - 但它的构造函数有什么签名?

    我正在尝试子类化io TextIOWrapper下列的这个帖子 https stackoverflow com a 23796737 974555 虽然我的目标不同 以此开始 注意 动机 https stackoverflow com a
  • Python 中的 C 指针算术

    我正在尝试将一个简单的 C 程序转换为 Python 但由于我对 C 和 Python 都一无所知 这对我来说很困难 我被 C 指针困住了 有一个函数采用 unsigned long int 指针并将其值添加到 while 循环中的某些变量
  • 将笔记本生成的 HTML 片段转换为 LaTeX 和 PDF

    在我的笔记本里有时会有 from IPython display import display HTML display HTML h3 The s is important h3 question of the day 但当我后来将笔记本

随机推荐

  • Orange Hrm 3.1-向选项卡添加新的菜单标题

    我是 symfony 框架的新手 我使用的是 Orangehrm 3 1 1 我在第二级选项卡中添加了一个新的菜单标题 但我不知道如何导航到特定的 href 链接 请帮我完成步骤 这是我通过数据库添加菜单项的方法 要在 Orangehrm
  • 如何在 Android CalendarView 上仅显示特定月份?

    我想在 CardView 上显示特定月份without下一个和上一个箭头用于导航日历 如果我想显示 2010 年 2 月 用户必须只能看到 2010 年 2 月 他们无法查看下个月或上个月 我跟着this https stackoverfl
  • 通过回溯分割字符串

    我正在尝试编写一个代码 将无空格的字符串分割成有意义的单词 但是当我给出像 arealways 这样的句子时 它返回 a real ways 而我想要的是 are 总是 我的字典包含所有这些词 我怎样才能编写一个不断回溯直到找到最佳匹配的代
  • 在R中绘制图形G=(V,E)

    我想通过 ggplot 或一些 R 内置函数在 R 中绘制标准 G V E 图 我有一个包含顶点坐标的数据框 gt V x y 1 589 3438 6422 883 2 8762 6921 7789 147 3 7973 0883 455
  • 样式显示在 Firefox、Opera、Safari 中不起作用 -(IE7 可以)

    我有绝对的定位div我想在用户单击链接时显示 这onclick链接的调用一个 js 函数 该函数将 div 的显示设置为阻止 也尝试过 inline table cell inline table ETC 这在 IE7 中效果很好 但在我尝
  • 语法高亮显示:Eclipse 如何做到如此快?

    我用 Java 为 Android 开发了一个语法荧光笔 它运行良好 但问题是处理大文件时速度可能会很慢 所以我想知道像 Eclipse 和 Gedit Ubuntu 这样的源代码编辑器如何快速突出显示您刚刚编写的内容 例如 如果您在编写
  • 任何人都知道用 *[class] 标记一个类的目的是什么

    今天我收到了一位客户发来的文件 该文件是电子邮件模板 在移动版本的 css 中 所有类规范均以 class 开头 e g class centertext somespec 0 有人知道将其添加到课程中的目的是什么吗 thanks 有一个雅
  • Base64 编码:非法 Base64 字符 3c

    我正在尝试将 xml 格式的数据解码为字节base64我遇到了问题 我的方法是在java中 它需要一个String数据并将其转换为bytes就像下面这样 String data string of data in xml format by
  • 将 Common Lisp 代码移植到 Clojure

    将 Common Lisp 应用程序移植到 Clojure 有多实用 更具体地说 Common Lisp 中存在哪些 Clojure 中不存在的功能 需要重写 有一个clojure org 上的列表 http clojure org lis
  • Go中如何进行除法运算

    我正在尝试用 Go 进行简单的除法 fmt Println 3 10 这会打印 0 而不是 0 3 这有点奇怪 有人可以分享一下这背后的原因是什么吗 我想在 Go 中执行不同的算术运算 Thanks 二元运算的操作数3 10是无类型常量 规
  • 了解 RTF 并使用 vb.net 进行编辑

    我的 vb net 表单中有这个 RichTextbox 我想当用户单击按钮时 例如加粗所选文本 我将如何执行此操作 另外 我不想使用标准的 vb net 表达式 例如RichTextBox1 SelectedText Font Bold
  • QString 的最大大小

    我在 Ubuntu 16 04 64 位架构上使用 Qt 5 9 我有一个要求 我需要从一个文件中获取输入 该文件的字符范围在 10 8 范围内 不幸的是 将文件分成几部分并进行处理并不是一种选择 因为我需要文件中的全部数据来操作我的代码
  • 如何使用单个 Service Worker 来安装多语言 Angular PWA?

    我已经准备了本地化语言版本的应用程序 为此 我使用了原生 Angular i18n 模块 它准备了两个应用程序包 每个包都有适当的语言 该应用程序的每个版本都可以在我的 nginx 服务器上的单独位置下使用 myapp com en mya
  • Indy 服务器支持 SSL 2,但不应该

    印地德尔福 10 1 柏林 我的客户检查了 HTTPS 连接 使用 Qualys SSL Labs 该报告指出 此服务器支持 SSL 2 以及其他警告 但我猜它们与此相关 使用的代码如下 SSLIOhandler TIdServerIOHa
  • mget 无法像 get 一样获取原始函数

    我可以用get获得原始函数 例如 get Primitive 然而 mget failed mget Error value for not found 为什么 如何解决这个问题 默认为get是使用inherits TRUE 我认为 基于文
  • 获取 ToolStripDropDown 对象的下拉状态

    尽管查看了几次 我在文档中找不到任何返回下拉列表是否打开的简单状态的内容 我想为工具条子菜单创建一个单击事件 该事件将根据其状态打开或关闭项目下拉列表 我可能会忽略它 因为它看起来是一个基本的方法 on the 工具栏下拉菜单 http m
  • 无边框窗口和桌面尺寸相同时闪烁

    我正在尝试创建一个充满屏幕的无边框窗口 http pcgamingwiki com wiki Glossary 3aBorderless fullscreen windowed带有 OpenGL 视口 问题是 当我将窗口和视口设置为与桌面大
  • CI 服务器比较? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在寻找不同的比较持续集成 http en wikipedia org wiki Continuous integration CI 服务器
  • 如何并行执行 2 个 Observable,忽略它们的结果并执行下一个 Observable

    我必须并行执行 2 个 observable 不关心它们的输出 当它们都完成时 gt 运行另一个 observable 这是我的解决方案 但我觉得还有更好的解决方案 rx Observable
  • 如何利用 Robot Framework 编写正则表达式来查找/替换各种日期字符串

    我使用机器人框架进行自动化测试 将文件读入变量 我正在解析该变量的各种日期格式 并尝试使用正则表达式将日期替换为当前日期 我正在努力解决的是让正则表达式在机器人框架中工作 我已经在各种网站 如 pythex 和 regex101 中编写了正