ciao a tutti!!!
non so come fare a estrarre una sottostringa usando le regex..
devo per esempio estrarre da
http://www.sito.it/da_estrarre/ciao
appunto la parte "da_estrarre"..
mi potete aiutare
ciao a tutti!!!
non so come fare a estrarre una sottostringa usando le regex..
devo per esempio estrarre da
http://www.sito.it/da_estrarre/ciao
appunto la parte "da_estrarre"..
mi potete aiutare
Qualora ti interessa solamente sapere come possono esser usate le classi ed i metodi ecco a te, mentre per la creazioni dell'espressione regolare più adatta per il tuo problema....Cerca su google espressioni rogolari e vedrai quanti bei risultati....
Cmq il codice postato qui sotto utilizzata le classi specifiche di Java, tra cui il Matcher e la gestione di Exception per quanto riguarda le espressioni regolari.
Esempio preso dal tutorial di JavaSun
Spero ti sia utile e comprensibileCodice PHP:import java.io.Console;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.regex.PatternSyntaxException;
public class RegexTestHarness2 {
public static void main(String[] args){
Pattern pattern = null;
Matcher matcher = null;
Console console = System.console();
if (console == null) {
System.err.println("No console.");
System.exit(1);
}
while (true) {
try{
pattern =
Pattern.compile(console.readLine("%nEnter your regex: "));
matcher =
pattern.matcher(console.readLine("Enter input string to search: "));
}
catch(PatternSyntaxException pse){
console.format("There is a problem with the regular expression!%n");
console.format("The pattern in question is: %s%n",pse.getPattern());
console.format("The description is: %s%n",pse.getDescription());
console.format("The message is: %s%n",pse.getMessage());
console.format("The index is: %s%n",pse.getIndex());
System.exit(0);
}
boolean found = false;
while (matcher.find()) {
console.format("I found the text \"%s\" starting at " +
"index %d and ending at index %d.%n",
matcher.group(), matcher.start(), matcher.end());
found = true;
}
if(!found){
console.format("No match found.%n");
}
}
}
}
Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli
si ok...ho più o meno capito come usare le regex..ma non me ne viene in mente una che possa cercare quel partiolare frammmento....sai darmi un consiglio??
Ma sei obbligato ad usare le espressioni regolari?
Questo perchè su quella stringa potresti anche usare uno StringTokenizer con separatore di token "\".
Poi la posizione da estrarre è sempre la seconda? ( http://www.sito.it/da_estrarre/ciao ).
Per l'espressione regolare ci sto pensando.....
Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli
Devo ancora convincermi, ma la soluzione possibile potrebbe essere :
( ?<=www[^/])/[0-9a-zA-Z]+/
Spiegazione :
(?<=www[^/]) : Indica "che è preceduta" dalla serie di caratteri www seguita da un
qualsiasi carattere che non sia "/"
/[0-9a-zA-Z]+/ : Indica la ripetizione consecutiva di tutti i caratteri alfanuerici sia Maiuscoli che
minuscoli, compresa tra "/" e "/"
Ottenendo così l'espressione : Cerca la ripetizione consecutiva di tutti i caratteri alfanumerici sia Maiuscoli che minuscoli compresa tra "/" e "/", preceduta dalla serie di caratteri www seguita da un qualsiasiasi carattere che non sia una /
Per la seconda parte /[0-9a-zA-Z]+/ pensavo di sostituirla con /[^/]+/ perchè nel caso di da_sostituire non verrebbe presa per colpa del carattere _.
Non sono certo che funzioni, ma tu provala comunque e fammi sapere.
Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli