2013-07-20 39 views
8

我有以下正則表達式來匹配以'+'開頭的文本的所有單詞。如何忽略正則表達式中的轉義字符?

Pattern.compile("\\+[\\w-]+"); 

這種運作良好,並符合"+Foo or +Bar""+Foo""+Bar"

如何擴展正則表達式以忽略以轉義'+'開始的單詞 - char?

"+Foo or +Bar but no \\+Hello"應該匹配"+Foo""+Bar"而不是"+Hello"

提前(它應該工作了JDK1.7。)

感謝您的幫助!

回答

13

你可以嘗試negative lookbehind

(?<!\\(\\{2})*)\+[\w-]+ 

一般來說,(?<!Y)X匹配不是由Y前面的X

+2

謝謝。這樣可行! – t777

+0

@ t777沒問題,很樂意幫忙。 – arshajii

4

您可以使用負向後看

Pattern.compile("(?<!\\\\)\\+[\\w-]+"); 
+1

感謝。但不起作用。可能會反斜槓? ;) – t777

+0

@ t777。好吧,對。你只需要4個反斜槓。 –