private static final String TEXT = "this a test 1: $\\$$,test 2: $\\underline{\\rm defund}$, test 3:$$\\underline{\\rm defund}$$";


其他人告诉我一个python模式:

re.compile(r'(?=([^\\]?))(?:(?P<bound2>\$\$)|\$)(.*?[^\\])(?:(?(bound2)\$\$|\$))', re.S)


预期:

$\$$ or \$, $\underline{\rm defund}$ or \underline{\rm defund}


但是我在android中使用它,Java不支持express pattern。谁可以给我写一个Java Pattern或给我一些提示?

最佳答案

在Java中,几乎没有修改。


1.转义$周围的反斜杠

2.使用双引号


您的新代码现在看起来像这样

Pattern.compile("(?=([^\\]?))(?:(?P<bound2>\\$\\$)|\\$)(.*?[^\\])(?:(?(bound2)\\$\\$|\\$))");


注意:确保导入模式类

07-26 01:51