2014-11-27 5 views
-3

У меня есть этот код:Regex и найти в текстовом файле

package ggg; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
import java.io.*; 

public class regex { 
    public static void main(String args[]){ 

      // String to be scanned to find the pattern. 
      String line = "This order was placed FRO-DDA-6666666 %10.25 %10.12 FRO-DDA-8888888 for QT3000! OK?"; 
      String pattern = "\\d+\\.\\d{2}"; 
      String pattern2 = "\\d{7}"; 


      // Create a Pattern object 
      Pattern r = Pattern.compile(pattern); 
      Pattern t = Pattern.compile(pattern2); 

      // Now create matcher object. 
      Matcher m = r.matcher(line); 
      Matcher g = t.matcher(line); 
      try { 
      PrintWriter writer = new PrintWriter("C:\\Users\\John\\workspace\\ggg\\src\\ggg\\text.txt", "UTF-8"); 
      for (int i = 1; m.find() && g.find(); i++) { 
      writer.println(g.group(0)+"->"+m.group(0)); 
      } 
      writer.close(); 
      } catch (IOException ex) {} 
     } 

} 

И результат есть:
6666666-> 10,25
8888888-> 10,12

Я хочу написать простой код для прочитайте файл text.txt, и если в этом файле есть «8888888», то распечатайте переднюю часть «8888888->», что мне делать?
Например, в нашем результате 10.12 фронт 888888->

+3

я не понимаю вопрос. ваш пример дает значение 10.12. где проблема – MihaiC

+0

У меня нет проблем. Мне нужен простой код или простой алгоритм, который читает файл text.txt, и если в этом файле есть «8888888», то распечатайте переднюю часть «8888888->» –

+0

, чтобы вы хотите, чтобы он читал из файла, тогда отобразите 10.12, потому что он содержится в той же строке, что и 8888888->? – MihaiC

ответ

1

Добавьте это в ваш код после построения файла:

BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\John\\workspace\\ggg\\src\\ggg\\text.txt")); 
    String myLine; 
    while ((myLine = br.readLine()) != null) { 
     if(myLine.contains("8888888")) 
      System.out.println(myLine.substring(myLine.indexOf(">")+1)); 
    } 
    br.close(); 
+0

Или как регулярное выражение: [8] {7}: D. Этот вопрос ... – Wolframm