с помощью регулярных выражений найдите фразу в файле - PullRequest
0 голосов
/ 27 октября 2010

используя регулярное выражение для поиска фразы в файле

So...

Task:

I have some phrase. the phrase contains 2 words. Phrase is devided into two words with next symbols:

[\s]*

How can i find the phrase using regular expression?

This code doesn't work on a file:
// file: Main.java
    class 


    Main {
    }

Программа


          Pattern pattern = Pattern.compile("class[\\s]+Main");

          BufferedReader input = new BufferedReader ( new FileReader( "Main.java" ) );

          int id = 0;

          for ( String line = input.readLine(); line != null; line = input.readLine() )
          {
             ++id;

             Matcher matcher = pattern.matcher( line );


             if ( matcher.find() )
             {
                System.out.println("number = " + id );

                System.out.println("start = " + matcher.start() );
                System.out.println("end   = " + matcher.end() );
                System.out.println( );
             }
          }

          input.close();

1 Ответ

0 голосов
/ 27 октября 2010

Вам нужно либо поместить весь файл в одну строку (добавить строку к StringBuilder в цикле for, а затем выполнить одно совпадение с результатом в конце), либо добавить случай,сохраните последнее слово в одной строке и первое слово в следующей строке, содержащее какие-либо слова, и проверьте их также.Самый простой, но, вероятно, не самый быстрый способ сделать это - что-то вроде:

String lastline = ""
// For loop begins
  String[] ll_parts = lastline.split("\\s")
  lastline = line;
  line = ll_parts[ll_parts.length-1] + line;
// Now do the match
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...