Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Java] jak znajdę dane wyrażenie to zwróć całe zdanie
Forum PHP.pl > Forum > Przedszkole
gregi
Cze jak podejść do tematu :
Jeżeli znajdzie ciąg znaków np "dom" w danym Stringu to jak zwrócić np:
całe zdanie czyli ciąg znaków od . do. (tam gdzie było słowo dom)
albo całą linie czyli po białym znaku entera (tam gdzie było słowo dom)
albo 20 znaków od lewej i 20 znaków od prawej (tam gdzie było słowo dom)




  1. Pattern pattern = null;
  2. try {
  3. pattern = Pattern.compile(regex);
  4. } catch (Exception exc) {
  5. System.out.println(result + "WWWW\n" + exc.getMessage());
  6. }
  7.  
  8. Matcher matcher = pattern.matcher(text);
Kshyhoo
Może to Ci pomoże:
  1. import java.io.*;
  2. import java.util.regex.*;
  3.  
  4. public class test {
  5. public static void main(String args[]) {
  6. String linia, txt=null;
  7.  
  8. try {
  9. BufferedReader b = new BufferedReader(new FileReader("test.java"));
  10. while((linia = b.readLine()) != null) txt+=linia+"\n";
  11.  
  12. Pattern p = Pattern.compile("while.*");
  13. Matcher m = p.matcher(txt);
  14. while(m.find()) System.out.println("Jest: "+m.group());
  15.  
  16. // System.out.println(txt);
  17.  
  18. } catch (IOException e) {
  19. System.out.println("Błąd: "+e);
  20. }
  21. }
  22. }
gregi
  1. Pattern p = Pattern.compile("while.*");

wyświetla mi to ci jest po prawej stronie po słowie while

A gdy : *.while.*
  1. Pattern p = Pattern.compile("*.while.*")
  2. Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0
  3. *.hard.*
  4. ^
  5. at java.util.regex.Pattern.error(Unknown Source)
  6. at java.util.regex.Pattern.sequence(Unknown Source)
  7. at java.util.regex.Pattern.expr(Unknown Source)
  8. at java.util.regex.Pattern.compile(Unknown Source)
  9. at java.util.regex.Pattern.<init>(Unknown Source)
  10. at java.util.regex.Pattern.compile(Unknown Source)
  11. at memo.testLookingfor.main(testLookingfor.java:21)
  12.  
  13. ;

a jak uzyskać całe zdanie z tym słowem? : )
salfunglandyare
a ".*while.*" ?
gregi
Ok
A teraz jak zrobić aby zwróciło dodatkowo zdanie przed i kolejne zdanie?
czyli poglądowo ?

xxxxx xxxxxxxx //jak zwrócić to
yyyyyyy while yyyyyyyy - // to już mamy
zzzzzz zzzzzzzzz //jak zwrócić to
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.