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/