# Textdatei durchsuchen



## cepedi (27. Juni 2004)

Hallo zusammen

Ich habe eine Textdatei in der alles mögliche drin steht.
jetzt möchte ich aber nur die hyperlinks haben!
der rest des textes kann ins nirvana verschwinden 
Wie kann ich den text durchsuchen und die Hyperlinks in ne 
andere Datei speichern?

Vielen Dank schonmal


----------



## Thomas Darimont (27. Juni 2004)

Hallo!

Wie sollen denn die Links aussehen?

Sind da ganz normale HTML <a href tags drinne oder hast du nur die reinen 
Adressen  wie z.Bsp. http://www.google.de drinnen stehen?

Gruß Tom


----------



## cepedi (27. Juni 2004)

Hi

da sind <a href tags drinne

hab die textdatei auch schon hiermit eigelesen

BufferedReader br = new BufferedReader(new FileReader("c:/test.txt"));

jetzt fehlt mir nur noch der richtige regex 


so sieht die methode zurzeit aus

public void durchsuchen()
{ 
try
{ 
BufferedReader br = new BufferedReader(new FileReader("c:/test.txt"));

String line;

Pattern pattern = Pattern.compile("");

while ((line = br.readLine()) != null) 
{
Matcher matcher = pattern.matcher(line);
br.append(line + "\n");   //<- append funktioniert nicht			
}

br.close();

} 
catch(Exception e){}


----------



## Thomas Darimont (27. Juni 2004)

Hallo!

Versuchs mal hiermit:


```
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/*
 * Created on 27.06.2004
 *
 * TODO 
 */

/**
 * @author Administrator TODO Describe what the class is used for
 */
public class ExtractLinks {

    public static void main(String[] args) {
        final String regex = ".*?(?i)<a.*?\\shref\\s*?=\\s*?\"(.*?)\".*?>.*?";

        try {
            BufferedReader br = new BufferedReader(new FileReader(
                    "c:/Links.txt"));

            Pattern pattern = Pattern.compile(regex);

            String line;

            while ((line = br.readLine()) != null) {
                Matcher matcher = pattern.matcher(line);
                if (matcher.matches()) {
                    System.out.println(matcher.group(1));
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
```


Meine Testdatei Links.txt


> sfddfjsdfkldfjskljl34342143
> 23424243fasdfsd<a href="http://www.tutorials.de" style="border: 0px;">asdffsdkölsdfköldf
> sdffsdfhsjk3423243<a href="http://www.tutorials.de/usercp.php?">gsdkjgkjdf
> 3434rf<a href="http://www.tutorials.de/misc.php?amp;action=faq">sdfdsasa
> ...



Ausgabe:



> http://www.tutorials.de
> http://www.tutorials.de/usercp.php?
> http://www.tutorials.de/misc.php?amp;action=faq
> http://www.tutorials.de/misc.php?amp;action=faq
> ...



HTH 

Gruß Tom


----------



## cepedi (27. Juni 2004)

Hallo

Ich hab zwar noch nen kleinen Fehler drin aber
funktioniert schon ganz gut 

in meiner Textarea zeigt er nur einen Link an aber
den Fehler werd ich schon finden 

Vielen Dank für die Hilfe


----------



## cepedi (28. Juni 2004)

Hallo

Hab immer noch nen Fehler!
und zwar hab ich 2 oder mehr Hyperlinks in einer Zeile!
er zeigt mir jedoch nur den ersten an und den rest scheint er einfach abzuschneiden!
desweiteren hab ich auch gemischte Hyperlinks drin

also nicht wie gestern angenommen das sie im Format <a href stehen
sondern auch normal wie z.b. http://www.....


----------



## squeaker (28. Juni 2004)

nach welchen Regeln sind die URLs in deinem Text? Fangen sie alle mit HTTP an? oder sind es verschiedenen Protokolle (FTP, SMTP, POP3, ...)? Steht das Protokoll immer dabei oder kann es auch weggelassen werden?

Schau dir auch mal
http://www.phpbuilder.com/columns/dario19990616.php3
an und lerne den regexp String anzupassen. Programmieren lernt man wenn man das abgeschriebene versteht!


----------



## cepedi (28. Juni 2004)

HI

alle fangen mit http an!


----------



## halol (29. Juni 2004)

könntet ihr mir nur mal erklären wie ihr hier datei eingelesen habt ?

also Pattern pattern = Pattern.compile(regex); check ich schon nicht 

stehen die "ergbnis urls" dann in der text datei
ne oda?


----------

