【问题标题】:Regex to select last line in a multi-line string正则表达式选择多行字符串中的最后一行
【发布时间】:2012-01-01 00:10:14
【问题描述】:

我有一个 ANT 脚本,它有一个属性,其值可以是一行或多行,例如 属性

prop1=
A_12.1_REL_B121000_10_18_2011.1700
A_12.1_REL_B121001_10_25_2011.6059
A_12.1_REL_B121001_10_25_2011.2201
A_12.1_REL_B121001_10_25_2011.2014

请注意,所有这些行都以 CRLF 结尾,并且文件结尾也是另一个 CRLF。现在我需要做的就是使用正则表达式选择最后一行。行数可以更少或更多,例如

prop1=
    A_12.1_REL_B121000_10_18_2011.1700  

在第二种情况下,我需要选择这一行。 我已经搜索过较旧的帖子,但找不到任何具体的内容。有什么指点吗?

【问题讨论】:

    标签: regex ant hex


    【解决方案1】:

    应该这样做...

    /^.*\z/m
    

    See it in action.

    (假设m 是多行模式。)

    【讨论】:

    • 非常感谢..我看到了你的答案,但只需要在我的脚本中检查它以接受它作为答案。另外,我无法找出这个有什么问题' \b(\w|\.)+(\s)$'.
    • 这个在 ANT 中不起作用。虽然 FailedDev 提供的那个对我有用。感谢您对 \z/m 的了解。
    【解决方案2】:

    如果您使用的是ant-contrib

        <loadfile srcFile="input.prop" property="test"/>
    
        <propertyregex property="result"
                       input="${test}"
                       regexp="(.*$)"
                       select="\1"
        />
    
        <echo message="Result is : ${result}"/>
    

    这将始终打印输入属性文件的最后一行:

    [echo] Result is : A_12.1_REL_B121001_10_25_2011.2014
    

    【讨论】:

    • SUPER.. 即使我在运行时从 exec cleartool 命令生成属性,这也有效。干杯
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 2021-05-16
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    相关资源
    最近更新 更多