如何为匹配$$提供正则表达式

时间:2011-01-24 06:25:40

标签: java regex

我有String str = "$$\\frac{6}{8}$$";我希望匹配字符串使用以'$$'开头并以'$$'结尾

如何为此编写正则表达式?

3 个答案:

答案 0 :(得分:1)

使用此正则表达式字符串:

"^$$.*$$$"

^将表达式锚定到匹配的字符串的开头,最后$将其锚定到结尾。所有其他$个字符都是字面意思。

答案 1 :(得分:1)

尝试使用正则表达式:

^\$\$.*\$\$$

在Java中将是:

^\\$\\$.*\\$\\$$

$是用作结束锚的正则表达式元字符。要表示文字$,您需要使用反斜杠\来转义它。

在Java中\是String中的转义字符,也是正则表达式中的转义字符。因此,要使\到达正则表达式引擎,您需要在字符串中包含\\

See it

答案 2 :(得分:0)

你可能想要这样的东西:

final String str = "$$\\frac{6}{8}$$";
final String latex = "A display math formula " + str + " and once again " + str + " and another one " + "$$42.$$";
final Pattern pattern = Pattern.compile("\\$\\$([^$]|\\$[^$])+\\$\\$");
final Matcher m = pattern.matcher(latex);
while (m.find()) {
    System.out.println(m.group());
}