regular expression in java

re_fish.jpg

 

Ultimanenteme lavorando al mio progetto in java, sono venuto a conoscenza delle regular expression, uno strumento davvero utile e molto utilizzato da me in precedenza sottovalutato. Ma cosa sono le regular expressions?

Le Regular Expressions o Espressioni Regolari, sono un modo di descrivere un insieme di stringhe con caratteristiche comuni condivise tra di loro. Possone essere utilizzate come strumento di ricerca, modifica o manipolazione di testi o di dati. E’ necessario imparare una sintassi specifica per creare Espressioni Regolari che va oltre la sitassi di Java. Le Espressioni Regolari possono essere semplici o complesse, ma l’importante è capire la base sulla quale si fondano, che risulterà comune a tutte quante anche le più complesse.
La sintassi delle Espressioni Regolari è supportata dalla API java.util.regex . Esistono diverse sintassi per le Espressioni Regolari: grep, Perl, Tcl, Python, PHP, and awk. La sintassi della API java.util.regex è molto simile a quella del Perl.
Il package java.util.regex è composto da tre classi: Pattern, Matcher, e PatternSyntaxException.

caratteri principali da utilizzare per codificare una espressione regolare sono quelli riportati qui sotto. Per ulteriori caratteri visitare i link correlati.

Ecco una semplice classe per far conoscenza con le espressioni regolari.

import java.util.regex.*;

public class BasicMatch {
public static void main(String[] args) {
// Compila l’espressioe regolare
String patternStr = “b”;
Pattern pattern = Pattern.compile(patternStr);

// Determina se il pattern esiste in input
CharSequence inputStr = “a b c b”;
Matcher matcher = pattern.matcher(inputStr);
boolean matchFound = matcher.find(); // true

// Crea la stringa di match
String match = matcher.group(); // b

// Recupera gli indici dove compare la sringa di match
int start = matcher.start(); // 2
int end = matcher.end(); // 3
// la fine è l’indice dell’ultimo carattere trovato + 1

// Cerca la ricorrenza successiva
matchFound = matcher.find(); // true
}
}

Caratteri
x Il carattere x
\\ Il carattere backslash
\uhhhh Il carattere con valore esadecimale 0xhhhh
\t Il carattere Tab ('\u0009')
\n Il carattere a capo (line feed) ('\u000A')
\r Il carattere di carriage-return ('\u000D')
\f Il carattere di form-feed ('\u000C')
\a Il carattere alert (bell) ('\u0007')
\e Il carattere escape ('\u001B')
Classi di caratteri
[abc] a, b, o c (classe semplice)
[^abc] Qualsiasi carattere tranne a, b, o c (negazione)
[a-zA-Z] da a a z e da A a Z, comprese (range)
[a-d[m-p]] da a a d, e da m a p: [a-dm-p] (unione)
[a-z&&[def]] d, e, o f (intersezione)
[a-z&&[^bc]] da a a z, tranne b e c: [ad-z] (sottrazione)
[a-z&&[^m-p]] da a a z, e non da m a p: [a-lq-z](sottrazione)
Classi di caratteri predefinite
. Qualsiasi carattere
\d Una cifra: [0-9]
\D Una non-cifra: [^0-9]
\s Un carattere di A spaziatura: [ \t\n\x0B\f\r]
\S Un carattre di non spaziatura: [^\s]
\w Un carattere alfanumerico e sottolineatura: [a-zA-Z_0-9]
\W Un carattere né alfanumerico né di sottolineatura: [^\w]

per ulteriori informazioni visitate questo link sito completo di esempi:

http://www.regular-expressions.info/

Annunci

6 pensieri su “regular expression in java

  1. Roxana

    sei sicuro della sintassi delle stringhe??? preferisco di gran lunga le stringhe di liquerizia però. ma grazie guana. devo tutto al tuo programma se una volta sono riuscita a rimorchiare un tizio che parlava solo in codice alfanumerico.

    Rispondi
  2. Antonio

    ciao,
    proprio ieri ho iniziato ad usare le regular expression.
    in particolare le stavo usando per fare splittare una stringa
    lemma.split(“[/.’-&)]”);

    il mio problema ora è che uno dei caratteri che deve verificare essere presente nella stringa è proprio [. E ovviamente mi da errore se scrivo lemma.split(“[/.'[-&)]”); perché dice che non è chiusa la regula expression.
    sai dirmi come fare? grazie

    Rispondi
  3. worlds best Tree Service

    Howdy! I could have sworn I’ve been to this web site before but after browsing through many of the posts I realized it’s
    new to me. Nonetheless, I’m definitely pleased I found it and I’ll be bookmarking it and
    checking back regularly!

    Rispondi

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...