Regular Expressions

Ci sto lavorando

 

 

Oggetto: Un potente mezzo per il trattamento dei testi

 

 

Contenuti:

1

Package java.util.regex

2

Regular expressions in Java - Tutorial

3

Espressioni regolari in Java

4

Java: Le Espressioni Regolari

5

Java Regex

 

Osserviamo questo:

 3 import java.util.regex.Matcher;
 4 import java.util.regex.Pattern;
 5 
 6 public class RegEx01 {
 7     public static void main(String[] args) {
 8         String str = "personevent.Person@7852e922";
 9         String pat = "(\\w+)\\.(\\w+)@(\\d+\\w\\d+)";
10         Pattern p = Pattern.compile(pat);
11         Matcher m = p.matcher(str);
12         System.out.println(m.groupCount());
13         while (m.find()) {
14                 String word1 = m.group(1);
15                 String word2 = m.group(2);
16                 String word3 = m.group(3);
17                 System.out.println(word1);
18                 System.out.println(word2);
19                 System.out.println(word3);                               
20         }          
21     }    
22 }  

 

Discussione:

In questa sede non andrò a descrivere nei particolari le Regualar expression, per questo ci sono i reference ed i tutorial ma mi soffermerò solo su quello che riguarda l'estrazione di sottostringhe. L'esempio qui riportato, tra l'altro molto utile, ci permette di estrapolare il nome di un source (vedi le sezioni riguardanti gli eventi qui). Quando nell'ascoltatore vogliamo sapere chi ci ha inviato l'evento eseguiamo il metodo dell'oggetto evento event.gestSource(); il quale ci restuisce una stringa un po troppo articolata:

 

personevent.Person@7852e922

 

il package personevent, il source Person, l'indirizzo di memoria dove risiede la classe @7852e922 a noi interessa solo il nome del source come fare ad estrarlo dall'intera stringa? Con l'aiuto delle regolar expression.

La troveremo nella sottostringa word2. Per la comprensione del codice fare riferimento al link n 5.