Как сделать регулярное выражение, ищущее список расширений, разделенных пробелом - PullRequest
2 голосов
/ 29 августа 2010

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

.ext1 .ext2 .ext3 ...

По сути, я ищу точку, строку буквенно-цифровых символов любой длины и пробел, а затем полоскать и повторять. Я немного запутался в том, как сказать «мне нужен период, строка символов и пробел». Но кроме того, за расширением last может следовать либо ничего, либо пробел, либо серия пробелов. Кроме того, я думаю, что между расширениями может следовать любое количество пробелов

РЕДАКТИРОВАТЬ: Я сделал более ясным, что я искал.

Спасибо!

Ответы [ 3 ]

1 голос
/ 29 августа 2010

(\.\w+)\s* Сравните это и получите свои результаты.
^((\.\w+)\s*)*$ Проверьте это, и если это правда, ваша строка именно то, что вы хотите.

Для последнего паттерна вы не можете (AFAIK) одновременно получать все расширения (разделенные) и проверять, что за последним следуют другие вещи. Либо вы проверяете свою строку, либо извлекаете из нее расширения.

1 голос
/ 29 августа 2010

Попробуйте:

^(?:\.[A-Za-z0-9]+ +)*\.[A-Za-z0-9]+ *$

(Rubular)

В строковом литерале Java вам необходимо экранировать обратную косую черту:

"^(?:\\.[A-Za-z0-9]+ +)*\\.[A-Za-z0-9]+ *$"
0 голосов
/ 29 августа 2010

Я бы начал с чего-то вроде: ^. [A-z0-9] + ([\ t \ n \ v] +. [A-z0-9] +) * $

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