Справка по регулярным выражениям Java - PullRequest
0 голосов
/ 04 декабря 2009

Строка не должна содержать пробелов или специальных символов. Разрешены только символы a-z, A-Z, 0-9, подчеркивание и точка.

Как мне этого добиться?

Обновление:
Все опубликованные решения работали на меня.

Спасибо всем за помощь.

Ответы [ 6 ]

3 голосов
/ 04 декабря 2009

Я уверен, что к тому времени, как я закончу печатать это, вы получите ответ. Итак, вот вам несколько советов: потратьте время (час или около того) на изучение основ регулярных выражений.

Вы будете удивлены, как часто они появляются в решениях проблем «реального мира».

Большой ресурс для тестирования -> http://gskinner.com/RegExr/

3 голосов
/ 04 декабря 2009

Другое решение:

text = text.replaceAll("[\\w.]", "");

Удаляет нежелательные символы, а не просто обнаруживает их.

С на сайте Sun :

\w  A word character: [a-zA-Z_0-9]
3 голосов
/ 04 декабря 2009
if (!myString.matches("^[a-zA-Z0-9._]*$")) {
    // fail ...
}

или вы можете использовать класс символов \w (сокращение от [a-zA-Z_0-9])

if (!myString.matches("^[\\w.]*$")) {
    // fail ...
}
0 голосов
/ 04 декабря 2009

Вы можете либо сделать регулярное выражение «все символы должны быть одним из этих», либо просто спросить, присутствует ли какой-либо из символов, которые вам не нравятся, и если это так, отклонить строку. Я полагаю, что последнее будет легче написать и понять позже.

0 голосов
/ 04 декабря 2009

Вы можете просто удалить все символы, которые не соответствуют набору [a-zA-Z0-9_.]. В качестве альтернативы вы можете заменить символы, отсутствующие в наборе, на действительные символы (например, подчеркивание). Наконец, вы можете полностью отклонить любую строку, которая состоит не только из символов в разрешенном наборе.

0 голосов
/ 04 декабря 2009

"[\\w,]+" должен сделать трюк

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