Ant正则表达式

时间:2014-04-04 16:19:18

标签: regex ant

理论上相当简单,但却无法得到它!

我希望ant中的正则表达式匹配任何内容,只要它在结尾处有斜杠。

以下是我期望的工作

<regexp id="slash.end.pattern" pattern="*/"/>

但是这会抛出

java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0
*/
^

我也尝试将其转发到\*,但这与文字*匹配。

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

您的原始正则表达式模式不起作用,因为*是正则表达式中的一个特殊字符,仅用于量化其他字符。

您在评论中提到的模式(.)*/$将匹配任何不包含换行符的字符串,但它会使用可能不必要的捕获组。 .*/$应该也能正常运作。

如果您需要匹配换行符,则点.不够。您可以尝试[\s\S]*/$

之类的内容

在这方面,应该提到您可能不希望在此模式中使用$。假设您有以下字符串:

abc/def/

这应该评估为两个匹配,abc/def/吗?或者它是一个包含整个事物的单一匹配?您当前的方法会创建一个匹配项。如果您希望搜索字符串,然后在找到/后立即停止匹配,则可以使用以下内容:[\s\S]*?/