2012-09-25 16 views
5

posso usareRegex per trovare caratteri speciali in Java

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

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

per trovare se c'è caratteri speciali in stringhe in Javascript.

Come è possibile utilizzare l'espressione regolare simile in Java?

ho provato:

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

Ad esempio:

String str = "123=456"; 

ho cercato di individuare "=" in str.

Che non ha funzionato. Che cosa sto facendo di sbagliato?

+4

Una semplice ricerca su Google per "java regex" e si potrebbe avere trovato: [ 'java.util.regex'] (http://docs.oracle.com/javase/6/ docs/api/java/util/regex/package-summary.html) tutto da solo! – verdesmarald

+0

mostra il modello ou've provato –

risposta

15

Prova questo.

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

EDIT: matches() controlli tutta la stringa e find() trova in qualsiasi parte della stringa.

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

+1

Per la sua espressione regolare, il pattern verrà creato con 'Pattern.compile (" [$ &+,:; =? @ # |] ")" Senza le barre. – Brian

+0

Ho provato il tuo codice. Non può funzionare :( –

+0

scusa, colpa mia .... Perché ho usato JSP, ho dimenticato di aggiornare il mio server ...... –

0

Usa

String.matches(String regex); 
-3

Ecco alcuni esempi di codice:

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 

questi frammenti di codice funzioneranno, supponendo che tutto è importato correttamente.

+0

qualcuno potrebbe spiegare perché hanno downvoted la mia risposta? è stato inviato prima che avessi finito di scrivere e l'ho modificato per contenere il resto delle informazioni. – Azulflame

+0

Questo controllerà solo se tutti i caratteri sono in una 'sequenza' e non un singolo' char' come nel caso del suo'regex'. -1 –

+0

@SriHarshaChilakapati potresti spiegare? il primo controlla se uno o più caratteri sono nella stringa, il secondo lo fa uno alla volta usando un ciclo for basato sulla dimensione di un elenco che contiene i caratteri speciali. – Azulflame

Problemi correlati