0

我整天都在敲这个头。我有一个从运行 shell 命令中捕获的字符串,我需要解析该字符串并提取文件的路径。我的工作正常,直到我尝试复制该文件......我认为我正在使用的正则表达式在路径的前面留下一个空格字符,这会在以后造成各种麻烦。

这是输入字符串的示例: [echo] P4ant has output = //perforce/dir1/dir2/dir3/dir4/dir5/dir6/dir7 /p4ant/p4ant-2010.1.293250.jar#1 - C:\dir1\ dir2\dir3\dir4\dir5\dir6\dir7\dir8\dir9\p4ant\p4ant-2010.1.293250.jar

当我解析它时,我得到了这个: [echo] P4ant local path = C:\dir1\dir2\dir3\dir4\dir5\dir6\dir7 \dir8\dir9\p4ant\p4ant-2010.1.293250.jar

看起来不错,但那里有一个额外的空间。我似乎无法摆脱它。这是我正在使用的代码:

            <propertyregex property="p4ant.local.path"
                  input="${p4ant.have.output}"
                  regexp="([^-][^ ]+?)$"
                  select="\0"
                  casesensitive="false"
            />

我正在搜索“破折号空间”组合,它在输出中不包含破折号,但由于某种原因仍然包含空格。

我在这里做错了什么?谢谢!

4

1 回答 1

1
\-\s <-- dash, followed by a whitespace
(.+?) <-- Anything, up to the next matching character
\s  <-- whitespace
(.+)$  <-- Anything, up to the end

所以:
regexp="\-\s(.+?)\s(.+)$"

然后连接 $1 和 $2 (对不起,不知道这在 ANT 中是如何工作的)

于 2013-03-22T03:32:24.683 回答