首页 > 解决方案 > 为 ${n} 类型和 {{coinsadded}} 类型的变量创建单一模式,以便可以在字符串中找到它

问题描述

我有不同类型的正则表达式,它们可以出现在字符串中。例如:

1. ${n}
2. {{coinsAdded}}
3. ${coinsAdded}, etc.

我必须创建一个模式,以便我可以找到字符串中存在的所有类型的正则表达式。有人可以尝试帮助我。

我已经创建了一种模式 -

\$\\{[a-zA-Z]*+\\}

但这只能满足我对 1 和 3 之类的正则表达式的需求,但对于 2 却失败了。

标签: javaregex

解决方案


更新感谢@Spara 指出丢失

(?:\${)[a-zA-Z]+(?:})|(?:\${{)[a-zA-Z]+(?:}})|(?:{{)[a-zA-Z]+(?:}})

演示

你可以试试这个

\$?{{?[a-zA-Z]*}}?

解释

  • \$?- 将匹配$?使其可选)。
  • {{?- 将匹配{{{
  • [a-zA-Z]*- 将匹配从 a 到 z 零次或更多次的任何字符。
  • }}?- 将匹配}}}

演示


推荐阅读