Регулярные выражения: все слова после моего текущего пропали - PullRequest
0 голосов
/ 24 февраля 2011

Мне нужно удалить все строки из моего текстового файла, например:

flickr:user=32jdisffs
flickr:user=acssd
flickr:user=asddsa89

В настоящее время я использую fields[i] = fields[i].replaceAll(" , flickr:user=.*", "");

, однако проблема заключается в том, что любойслово после flickr:user= удаляется из содержимого, даже после пробела.

спасибо

Ответы [ 3 ]

0 голосов
/ 24 февраля 2011

Вам, вероятно, нужно

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

0 голосов
/ 24 февраля 2011

Исходя из поставленного вопроса, скорее всего, вы хотите:

fields[i] = fields[i].replaceAll(" , flickr:user=[^ ]* ", ""); // or " "

Это будет соответствовать строке, включая значение от user до первого пробела, но не включая его, после чего следуети замените его пустой строкой или одним пробелом. Однако это (без запятой) даст вам пустой результат с показанным вами вводом.Вы действительно этого хотите?

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

Причина ваших трудностей в том, что неограниченный1012 * будет соответствовать всему от этой точки до конца ввода (даже если это ничего не значит; для этого *).Для анализатора регулярных выражений на основе строки это конец строки.

0 голосов
/ 24 февраля 2011

flickr:user=\w+ должен сделать это:

String noFlickerIdsHere = stringWithIds.replaceAll("flickr:user=\\w+", "");

Справка:

\w = Символ слова: [a-zA-Z_0-9]

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