Найти слова, содержащие только заданные символы: RegEx - PullRequest
3 голосов
/ 23 октября 2011

У меня есть набор слов. Например,

abc, adb, acb, cab, abcc, abk, bacc

Я хочу найти слова, которые имеют только

а

итак, мне нужен результат

abc, acb, cab, abcc, bacc

Мне нужно найти это с помощью регулярных выражений.
Может кто-нибудь, пожалуйста, помогите мне.

Ответы [ 3 ]

4 голосов
/ 23 октября 2011

Регулярное выражение ниже найдет все ваши слова только с символами abc внутри них.

    Pattern regex = Pattern.compile("\\b[abc]+\\b");
    Matcher regexMatcher = regex.matcher(subjectString);
    while (regexMatcher.find()) {
        // matched text: regexMatcher.group()
        // match start: regexMatcher.start()
        // match end: regexMatcher.end()
    } 
3 голосов
/ 23 октября 2011

Не беспокоясь о регистре для простого примера

[ac] +

будет соответствовать любой комбинации из одной или нескольких букв из ac

[afz] +

будет делать то же самое для a, f, z

. Помимо рассмотрения регистра, вы также хотели бы рассмотреть, что составляет «слово» (предшествует и следует за пробелом или чем-то еще)

0 голосов
/ 23 октября 2011
\\b[abc]+\\b

или

\\b[a-c]+\\b

[ и ] обозначает набор символов , а + означает 1 или более повторений излюбой персонаж в наборе.\b - это граница слова , поэтому вы будете сопоставлять только полные слова.

Пример.

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