正则表达式选择多行字符串中的最后一行
Posted
技术标签:
【中文标题】正则表达式选择多行字符串中的最后一行【英文标题】: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
在第二种情况下,我需要选择这一行。 我已经搜索过较旧的帖子,但找不到任何具体的内容。有什么指点吗?
【问题讨论】:
【参考方案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
命令生成属性,这也有效。干杯以上是关于正则表达式选择多行字符串中的最后一行的主要内容,如果未能解决你的问题,请参考以下文章