2015-09-23 21 views
0
private static final String TEXT = "this a test 1: $\\$$,test 2: $\\underline{\\rm defund}$, test 3:$$\\underline{\\rm defund}$$"; 

其他人告訴我一個蟒紋:如何使用正則表達式來查找字符串中的乳膠表達

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

預計:

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

我卻用它在Android及Java不支持express pattern。誰可以爲我寫一個Java Pattern或給我一些提示?

+0

看看[this](http://www.vogella.com/tutorials/JavaRegularExpressions/article.html) –

回答

0

在java中,只有很少的修改。

逃生周圍$

2.製作使用雙引號的反斜線

新代碼應該是這樣的

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

注意:確保你導入你的模式類

+0

我知道這兩個提示,我試過編譯它。 java.util.regex.Pattern中失敗: 異常在線程 「主」 java.util.regex.PatternSyntaxException:鄰近索引64未關閉的 字符類(?=([^ \])?)(:(? (?)(?(bound2)\ $ \ $ | $ \ $)) ^ \t at java.util.regex.Pattern。P \ $ \ $)| \ $)(。*?[^ \]) error(Pattern.java:1955) \t at java.util.regex.Pattern.clazz(Pattern.java:2548) I –

相關問題