Вопрос о регулярных выражениях в Java - PullRequest
2 голосов
/ 25 марта 2011

Я анализирую текстовый файл, и мне нужно удалить все термины, такие как:

upcoming:event=103499
abc:dfe=123813
...

Format: `term1:term=0000000`

В настоящее время я использую это выражение reg для удаления таких терминов из моего текстового файла:

   myString = myString.replaceAll("[0-9A-Za-z]+:[0-9A-Za-z]+", "");

Так, например, если у меня есть такая строка:

"blabla abc:dfe=123813 cococo ghi:pol=09339 pppoooo"

должно стать: "blabla cococo pppoooo"

Но это не работает

спасибо

Ответы [ 3 ]

4 голосов
/ 25 марта 2011

Вам необходимо присвоить возвращаемое значение replaceAll обратно на строковую ссылку:

myString = myString.replaceAll("[0-9A-Za-z]+:[0-9A-Za-z]+", "");

И это работает

Но если вы хотите заменить всю строку, вы можете сделать:

myString = myString.replaceAll("[0-9A-Za-z]+:[0-9A-Za-z=]+", "");

EDIT:

Для отредактированного вопроса вы можете использовать:

myString = myString.replaceAll("[0-9A-Za-z]+:[0-9A-Za-z]+=[0-9]+ ?", "");

Смотри

1 голос
/ 25 марта 2011

Попробуйте:

myString=myString.replaceAll("[0-9A-Za-z]+:[0-9A-Za-z]+=", "");

Если вы хотите сохранить =, то удалите из строки reg exp выше.

0 голосов
/ 25 марта 2011

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

String myString = "blabla abc:dfe=123813 cococo ghi:pol=09339 pppoooo";
// assumes that the string does not start with ' '
myString = myString.replaceAll("[0-9A-Za-z]+:[0-9A-Za-z=]+\\ ?", "");
// myString is now equal to "blabla cococo pppoooo" as per your edit.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...