Задать вопрос
RuslanSayko
@RuslanSayko

Как составить регулярное выражение?

Всем доброго времени суток.
Помогите написать регулярное выражение. Есть класс символов, нужно найти все слова в которых каждый символов из перечня обязательно встречается всего один раз. Например:

Regex rex = new Regex(@"\b[аклас]{5}\b")

салка - подходит
каска - не подходит
касса - не подходит
ласка - подходит
скала - подходит

Заранее спасибо.
  • Вопрос задан
  • 2695 просмотров
Подписаться 1 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Решения вопроса 1
@amaslenn
Судя по всему, проблема в \b. Если у вас поддерживаются просмотры вперед/назад, то вот такое работает:
(?<!\w)([алск]{5})(?!=\w)
Это то еще извращение, но если вам надо просто решить задачу - подойдет.

Вот тут можно тренироваться: regex101.com/r/qD0xQ7/2

PS у вас одна 'а' лишняя.

UPD
проблема может быть еще и в кириллице - ваш вариант с латиницей работает без проблем.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Lerg
@Lerg
Defold, Corona, Lua, GameDev
А обязательно регулярное выражение? Можно выделить все слова и в цикле у каждого слова посчитать сколько в нём встречается нужных символов.

Кстати это называется анаграмами.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы