2 回答

TA贡献1821条经验 获得超6个赞
我能想到的最简单的 * 正则表达式是:
\\$?(\\{[a-zA-Z]+}|\\{\\{[a-zA-Z]+}})
* 在“最容易理解”的意义上,而不是在“最紧凑”的意义上。
\\$?匹配一个可选的$. 之后,遵循以下\\(之一:
\\{[a-zA-Z]+},即使用一对 的正则表达式{},
|或者,
\\{\\{[a-zA-Z]+}}使用双精度的正则表达式{{}}。
测试:
System.out.println("{n}".matches("\\$?(\\{[a-zA-Z]+}|\\{\\{[a-zA-Z]+}})"));
System.out.println("{{coinsAdded}}".matches("\\$?(\\{[a-zA-Z]+}|\\{\\{[a-zA-Z]+}})"));
System.out.println("${coinsAdded}".matches("\\$?(\\{[a-zA-Z]+}|\\{\\{[a-zA-Z]+}})"));
System.out.println("{{{coinsAdded}}}".matches("\\$?(\\{[a-zA-Z]+}|\\{\\{[a-zA-Z]+}})"));
System.out.println("$${coinsAdded}".matches("\\$?(\\{[a-zA-Z]+}|\\{\\{[a-zA-Z]+}})"));
输出:
真
真真假假
_
_
_
添加回答
举报