2012-09-25 18 views
5

puedo usarexpresión regular para encontrar caracteres especiales en Java

var regex = /[$&+,:;[email protected]#|]/; 

if(elem.match(regex)) { // do something 
} 

para encontrar si hay caracteres especiales en cadena en Javascript.

¿Cómo puedo usar la expresión regular similar en Java?

I han intentado:

str.match("\\="); // return false 

Por ejemplo:

String str = "123=456"; 

Probé para detectar "=" en str.

Eso no funcionó. ¿Qué estoy haciendo mal?

+4

Una simple búsqueda en Google de "expresiones regulares Java" y que podría haber encontrado: [ 'java.util.regex'] (http://docs.oracle.com/javase/6/ docs/api/java/util/regex/package-summary.html) ¡todo por su cuenta! – verdesmarald

+0

muestra el patrón o intenté –

Respuesta

15

Pruebe esto.

Pattern regex = Pattern.compile("[$&+,:;[email protected]#|]"); 
Matcher matcher = regex.matcher("123=456"); 
if (matcher.find()){ 
    // Do something 
} 

EDIT: matches() cheques toda la cadena y find() lo encuentra en cualquier parte de la cadena.

Un enlace: http://docs.oracle.com/javase/tutorial/essential/regex/index.html

+1

Para su expresión regular particular, el patrón se crearía con 'Pattern.compile (" [$ &+,:; =? @ # |] ")' Sin las barras diagonales. – Brian

+0

Probé tu código. No puede funcionar :( –

+0

lo siento, mi culpa ... Porque utilicé JSP, olvidé actualizar mi servidor ...... –

0

Uso

String.matches(String regex); 
-3

He aquí algunos ejemplos de código:

import java.lang.Scanner; 
/*setup everything here, you just need that import*/ 
Scanner input = new Scanner(System.in); 
//ask for input 
String str = input.next(); 
if(str.contains(/*char1*/) || str.contains(/*char2*/) || /*continue the pattern, 1 for every character*/) 
{ 
    //event if it contains one 
} 
else 
{ 
    //event if it does not contain any 
} 

un alternatve:

import java.lang.Scanner; 
/*put the program parts here*/ 
Scanner input = new Scanner(System.in); 
String str = input.next(); 
List<char> chars = Arrays.asList(/*put chars here, seperated with commas*/); 
for(int x = 0; x < chars.size();x++) 
{ 
    if(str.contains(chars[x])) 
    { 
     //event if it contains one 
    } 
    else 
    { 
     //event if it does not contain one 
    } 
} 
//resume program 

estos fragmentos de código va a funcionar, asumiendo que todo es importado correctamente.

+0

¿alguien explicaría por qué rechazaron mi respuesta? se envió antes de que terminara de escribir, y lo edité para que contenga el resto de la información. – Azulflame

+0

Esto solo comprobará si todos los caracteres están en una "secuencia" y no un solo "char" como en el caso de su 'regex'. -1 –

+0

@SriHarshaChilakapati ¿podría explicarlo? el primero comprueba si uno o más de los caracteres están en la cadena, el segundo lo hace uno a la vez usando un bucle for basado en el tamaño de una lista que contiene los caracteres especiales. – Azulflame

Cuestiones relacionadas