理论上相当简单,但却无法得到它!
我希望ant中的正则表达式匹配任何内容,只要它在结尾处有斜杠。
以下是我期望的工作
<regexp id="slash.end.pattern" pattern="*/"/>
但是这会抛出
java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0
*/
^
我也尝试将其转发到\*
,但这与文字*
匹配。
任何帮助表示赞赏!
答案 0 :(得分:2)
您的原始正则表达式模式不起作用,因为*
是正则表达式中的一个特殊字符,仅用于量化其他字符。
您在评论中提到的模式(.)*/$
将匹配任何不包含换行符的字符串,但它会使用可能不必要的捕获组。 .*/$
应该也能正常运作。
如果您需要匹配换行符,则点.
不够。您可以尝试[\s\S]*/$
在这方面,应该提到您可能不希望在此模式中使用$
。假设您有以下字符串:
abc/def/
这应该评估为两个匹配,abc/
和def/
吗?或者它是一个包含整个事物的单一匹配?您当前的方法会创建一个匹配项。如果您希望搜索字符串,然后在找到/
后立即停止匹配,则可以使用以下内容:[\s\S]*?/
。