Идентификация строки в файле так, что она начинается и заканчивается кавычкой - PullRequest
0 голосов
/ 26 сентября 2011

Я пишу интерпретатор схемы на Java. Файлы содержат много строк / слов Это одна из строк в файле:

"xx'x v \" ггггг \ "... эээ, дддд фффф \\\ n"

Я должен идентифицировать это так, чтобы была возвращена вся строка, но в моей программе это только читает "xx'x v \" а затем читает другие слова от "до \" Любая помощь высоко ценится

String text = "";
    int nextString = t;         

    while(!isString(nextString)){           

            nextString = reader.read();
            int next = peek();              

            if (nextString == '\\' && next =='"'){
                nextString = reader.read();                                                     

                if(Character.isSpaceChar(next)){
                    text+=" ";
                }                   
            }               
            text += (char) nextString;
    }       
    return new StringToken(text, lineNumber);

}

Ответы [ 2 ]

1 голос
/ 26 сентября 2011

если вы не хотите использовать регулярное выражение, возможно, вы можете использовать:

String text = "";
    int nextString = t;         

    while(!isString(nextString)){           

            nextString = reader.read();
            int next = peek();              

            if (nextString == '\\' && next =='"'){
                nextString = reader.read(); 
                text += (char) nextString;
               nextString = reader.read();            
            }     
           if(Character.isSpaceChar(next)){
                    text+=" ";
                }           
            text += (char) nextString;
    }       
    return new StringToken(text, lineNumber);
}
0 голосов
/ 26 сентября 2011

Использование регулярных выражений, например:

[^\\]\"(.*[^\\])\"

Это будет работать только в том случае, если первый «не является первым символом строки.Между (). Например, если я передам \ "мусор" Hello \ "foo", он получит Hello \ "foo (это то, что вы хотите, если я правильно понял).

Я на самом деле не знаю, как Java-классы regex обрабатывают () в регулярных выражениях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...