2013-07-20 19 views
8

'+' ile başlayan bir metnin tüm sözcükleriyle eşleştirmek için aşağıdaki normal ifadeye sahibim. Bu iyi çalışıyor ve "+Foo" ve "+Bar" için "+Foo or +Bar" maçlarıNormal ifadede kaçan karakter nasıl göz ardı edilir?

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

.

Kaçan '+' - char ile başlayan kelimeleri yok saymak için normal ifadeyi nasıl uzatabilirim?

"+Foo or +Bar but no \\+Hello"

"+Hello" için "+Foo" ve "+Bar" ama değil aynı olmalıdır.

(O JDK1.7 için çalışmalıdır.)

peşin herhangi bir yardım için!

cevap

4

Sen negatif görünüm arkasında kullanabilirsiniz:

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

Genelde, (?<!Y)X bir Y öncesinde edilmeyen bir X eşleşir:

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

teşekkür ederiz. Ama işe yaramıyor. Çok ters eğik çizgi olabilir mi? ;) – t777

+0

@ t777. Peki, doğru. Sadece 4 ters eğik çizgi gerekiyor. –

İlgili konular