【问题标题】:ANT: Reg regexp for extracting contents between slashes in property regexANT:用于提取属性正则表达式中斜线之间的内容的正则表达式
【发布时间】:2023-03-10 23:54:01
【问题描述】:

我有以下字符串作为调度程序文件的输入

Z:\cnt_development\cnt\test\Test-cases-blr\v80-WM\scheduler\FRQ\AUTO\sml-hr454\SRISM.xml
Z:\cnt_development\cnt\test\Test-cases-blr\v80-WM\scheduler\FRQ\AUTO\sml-lr454\Swap_MUL.xml
Z:\cnt_development\cnt\test\Test-cases-blr\v80-WM\scheduler\FRQ\AUTO\sml-lr456\Swap_MU.xml

我需要从 v80-WM 中提取完整的部分

即正则表达式必须能够选择以下字符串

v80-WM\scheduler\FRQ\AUTO\sml-hr454\SRISM.xml
v80-WM\scheduler\FRQ\AUTO\sml-lr454\Swap_MUL.xml
v80-WM\scheduler\FRQ\AUTO\sml-lr456\Swap_MU.xml

目前我正在使用以下正则表达式,其中正则表达式在上述字符串中找到最后一次出现的“Q”并对其进行修剪并使用 workardoung 来构造上述结果。

<echo message="runpART ... Scheduler File ${schedulerFile}"/>
    <propertyregex property="cfg.arg" input="${schedulerFile}" regexp="([^Q]*).xml"        select="\1"   casesensitive="false"/>

在从“v80-WM....xml”中提取字符串时需要帮助。

一些输入会有所帮助

【问题讨论】:

  • 调度器你了解多少?它总是以 v80 开头吗?它是否始终存在于测试用例目录中?完整目录是否始终相同?该目录是否在另一个 Ant 属性中?这个问题的答案将允许创建一个不那么 hacky 的正则表达式。
  • 是的,调度程序总是从 v80 开始。在 v80-WM 之后,目录结构发生了变化。目录结构是从v80-wm递归读取的。

标签: ant ant-contrib


【解决方案1】:

这很好。 v80-WM 给你一个固定的“起点”

使用它作为你的正则表达式应该可以做到这一点。 ^.(v80-WM.)

什么意思:

  • ^.* 匹配任何内容,直到你到达 *插入符号并不是真正需要的,但我喜欢让 reg exp 更严格)
  • v80-WM = .* 然后匹配其余部分

括号包括 v80-WM 名称和后面的所有内容,因此您不必重新构建它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-10
    • 2014-01-12
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 2011-07-28
    • 1970-01-01
    相关资源
    最近更新 更多