首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在ANT中用正则表达式获取索引

如何在ANT中用正则表达式获取索引
EN

Stack Overflow用户
提问于 2019-03-18 22:24:47
回答 2查看 136关注 0票数 0

我有一个字符串,其版本为.v_september (每个月都会有所不同)。在这里,我想取下划线后的值,意思是"sep" (仅前3个字母)。

通过使用regex .v_(.*),我可以花整整一个月的时间,而不能只获得前3个字母。

有人能帮我解决我如何在Apache中实现这一点吗?谢谢!

EN

回答 2

Stack Overflow用户

发布于 2019-03-19 09:41:48

属性上的Regex函数在本机Ant中有点笨拙(与在文件中处理文本不同)。Ant-cont肋骨有replaceregexp任务,但我尽量避免任何可能的蚂蚁竞争.

相反,它可以通过loadfile任务和嵌套过滤器来完成:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <property name="version" value=".v_september" />

    <loadfile property="version.month.short">
        <propertyresource name="version" />
        <filterchain>
            <tokenfilter>
                <replaceregex pattern="\.v_(.{3}).*" replace="\1" />
            </tokenfilter>
        </filterchain>
    </loadfile>

    <echo message="${version.month.short}" />

关于regex模式,请注意它需要如何以.*结束。这是因为Ant没有一个简单返回捕获组内容的"match“函数。它只是在运行一个替换,所以我们需要替换不属于组的字符串中的所有内容。

票数 2
EN

Stack Overflow用户

发布于 2019-03-18 22:30:42

.*将捕获所有内容,并且只捕获三个字符,您需要编写{3}而不是*。此外,您还应该在regex开始时转义.,使其只匹配一个文字点。您可以使用这个正则表达式并从group1捕获,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\.v_(.{3})

演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55234832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文