four systems Ответов: 2

Java-код, который читает из файла и строки с регулярным выражением espression


public class StringUtilitiesFromFile  {
	public static void main(String[] args) throws IOException 
        {
              File file = new File("D://French/FrenchWords/Auth.html");
		String string = FileUtils.readFileToString(file);  
                String And = string.replaceAll("\\(.*\\)", "");  
		System.out.println(And);    
                System.out.println("");           
       }
}


в результате получается:
проспект
борода
под
лодка
связанный
яркий бронхит бюджетный строитель переборка бизнесмен предприниматель бизнесвумен мясник
клетке углерода углерода
карта канцероген осторожность, осторожный
пещера
характеристика
главный
главный глины
чистый тренер
уголь
удобный
потребительские товары широкого потребления
контакт
хладнокровное мужество
смелость смелый ход судебного крышка кузена жестоким
дебаты защита ответчика защита защита неповиновение дефицит
определять

которые составляют около двадцати четырех строк но сам файл содержит около четырехсот строк

то, что делает код, это считывает из файла и rcmoves любое слово с фигурными скобками
а скобки

Что я уже пробовал:

изменено регулярное выражение и другие типы кода

2 Ответов

Рейтинг:
6

CPallini

Я думаю, что проблема заключается в вашем жадный подход :-)
Измените шаблон с

Цитата:
"\\(.*\\)"

к
"\\(.*?\\)"


Для меня работает следующая программа
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class Braces  {
  public static void main(String[] args) throws IOException
        {
              String input = new String( Files.readAllBytes(Paths.get("Auth.html")));
              System.out.println(input);
              System.out.println("------------------------------------------");
              String output = input.replaceAll("\\(.*?\\)", "");
              System.out.println(output);
              System.out.println("");
       }
}


Richard MacCutchan

+5. кое-что новое я узнал сегодня.

CPallini

Спасибо тебе, Ричард!

four systems

танкс

CPallini

Добро пожаловать.

Рейтинг:
2

Patrice T

Цитата:
которые составляют около двадцати четырех строк но сам файл содержит около четырехсот строк

Вы забыли показать нам, что такое входной файл.
Первое: проверьте, что было прочитано из файла.
public class StringUtilitiesFromFile  {
	public static void main(String[] args) throws IOException 
        {
              File file = new File("D://French/FrenchWords/Auth.html");
              String string = FileUtils.readFileToString(file);  
              System.out.println(string); 
              System.out.println("------------------------------------------");
              String And = string.replaceAll("\\(.*\\)", "");  
              System.out.println(And);    
              System.out.println("");           
       }
}

[Обновление]
Цитата:
содержимое файла находится здесь, уже вставлено около тридцати строк, сам файл гораздо длиннее

Тогда вы знаете, что файл читается нормально, теперь изменить регулярное выражение заменить соответствовать регулярному выражению, и печатать совпадения в строке.


four systems

содержимое файла находится здесь, уже вставлено около тридцати строк собственно файл намного длиннее это должно дать вам довольно хорошее представление о том что делается, java читает файл выбирает слова и записывает в другой файл, слова с фигурными скобками не допускаются

приведенный выше код делает это, но только для нескольких выборочных файлов и не повторяется по всему файлу


ability (noun) able (adjective) about (preposition) about (adverb) above (adverb) above (preposition) abroad (adverb) absence (noun) absent (adjective) absolute (adjective) abstract abstract (adjective) abuse (verb) abuse (noun) abusive academic (adjective) accept (verb) acceptable (adjective) acceptance access (verb) access (noun)accompany (verb) according+to (preposition) account (verb) account (noun) accountant accurate (adjective)a (indefinite article) abandon (verb) ability (noun) able (adjective) about (preposition) about (adverb) above (adverb) above (preposition) abroad (adverb) absence (noun) absent (adjective) absolute (adjective) abstract abstract (adjective) abuse (verb) abuse (noun) abusive academic (adjective) accept (verb) acceptable (adjective) acceptance access (verb) access (noun) accompany (verb) according+to (preposition) account (verb) account (noun) accountant accurate (adjective)accuse ache (noun) ache achieve (verb) acquire (verb) acquit across (adverb) across (preposition) act (verb) act (noun) action (noun) active activity (noun) actor actress actual (adjective) actually (adverb) adapt (verb) add (verb) addition (noun) additional (adjective) address (noun) address (verb) adequate (adjective) adjourn adjust (verb) administration (noun) admiration admire (verb) admission (noun)admit (verb) adopt (verb) adoption adult (noun) adult (adjective) advance (noun) advance (verb) advantage (noun) adventure (noun) adventurous advertise (verb) advertisement (noun) advice advise (verb) affair (noun) affect (verb) affection affectionate afford (verb) afraid (adjective) after (adverb) after (conjunction) after (preposition) afternoon again (adverb) against (preposition) age (noun) age (verb) agency (noun) agent (noun)aggravation aggressive ago agree (verb) agreement (noun) agriculture ahead (adverb) aid (verb) aid (noun) aim (noun) aim (verb) air air traffic controller airplane (noun) airport (noun) aisle alarm (verb) alarm (noun) alert (noun) alert (adjective) alert (verb) alibi alimony alive (adjective) all (adverb) all (pronoun) all (adjective) all right (adverb) all right (adjective)

four systems

вы имели в виду изменить строку и = string.replaceAll("\\(.*\\)", ""); для чего-то другого

Patrice T

Вы используете replaceAll, но вы слепы, вы не знаете, что происходит внутри.
Смотрите документацию по функции match RegEx, она позволит вам увидеть, какая строка соответствует вашему регулярному выражению.

four systems

танкс