2011-11-20 47 views
12

En primer lugar, estoy leer la documentación que sigaPuntuacion expresiones regulares en Java

http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html

Y quiero encontrar cualquier carácter puntuacion SALVO @', & pero no entiendo muy bien.

aquí es:

public static void main(String[] args) 
{  
    // String to be scanned to find the pattern. 
    String value = "#`~!#$%^"; 
    String pattern = "\\p{Punct}[^@',&]"; 

    // Create a Pattern object 
    Pattern r = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE); 

    // Now create matcher object. 
    Matcher m = r.matcher(value); 
    if (m.find()) { 
     System.out.println("Found value: " + m.groupCount()); 
    } else { 
     System.out.println("NO MATCH"); 
    } 


} 

El resultado es ninguna coincidencia.
¿Hay alguna discrepancia?

Gracias
MRizq

+1

'Patrón de encordado = "[\\ {p} Punct && [^ @', '&]]"; debería funcionar –

+0

@RC ¿Me puede apuntar a una cierta documentación respecto esta sintaxis? Nunca lo había visto antes. – Tomalak

+0

@Tomalak ver el enlace proporcionado en la pregunta –

Respuesta

30

Estás a juego dos personajes, no uno. Usando una búsqueda hacia delante (negativo) debe resolver la tarea:

(?![@',&])\\p{Punct} 
+1

Eres Rock, gracias Lucero :) – MRizq

Cuestiones relacionadas