我需要从给定的URL拆分字符串并将其存储在属性中.
例如:url:projectname/qa/projectid/version属性需要存储:Name = projectname Mode = qa Id = projectid Version = version
使用内置的javascript引擎(JDK> = 1.6.06)和ant脚本任务:
<project>
<property name="url" value="projectname/qa/projectid/version"/>
<script language="javascript">
arr = project.getProperty('url').split('/');
project.setProperty('Name', arr[0]);
project.setProperty('Mode', arr[1]);
project.setProperty('Id', arr[2]);
project.setProperty('Version', arr[3]);
</script>
<echo>
$${Name} => ${Name}
$${Mode} => ${Mode}
$${Id} => ${Id}
$${Version} => ${Version}
</echo>
</project>
Run Code Online (Sandbox Code Playgroud)
输出:
[echo] ${Name} => projectname
[echo] ${Mode} => qa
[echo] ${Id} => projectid
[echo] ${Version} => version
Run Code Online (Sandbox Code Playgroud)
将其包装在macrodef或scriptdef中以供重用(相当于编写新的ant任务).
如果您更喜欢使用一些ant插件而不是ant脚本任务,请参阅Ant Flaka,它有多种字符串操作的可能性,请参阅手册和示例.
- 编辑 -
拆分与regexp,fe:
<project>
<property name="url" value="Chico.Harpo.Groucho.Gummo.Zeppo"/>
<script language="javascript">
<![CDATA[
// won't work because special meaning of '.' as wildcard
// arr = project.getProperty('url').split('.');
// so either use
// masking as character class '[.]' or '\\.'
arr = project.getProperty('url').split('[.]');
for (i=0; i < arr.length; i++)
{
print(arr[i]);
}
]]>
</script>
</project>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12658 次 |
| 最近记录: |