Тема: Такое regExp
Показать сообщение отдельно
  #1 (permalink)  
Старый 12.07.2013, 18:21
Профессор
Отправить личное сообщение для lancer Посмотреть профиль Найти все сообщения от lancer
 
Регистрация: 30.01.2008
Сообщений: 230

Такое regExp
Перечитал здесь все про регулярные выражения, но так и не понял с какой стороны подойти к следующей задаче чтобы не наплодить тонну кода.

Дано: произвольная строка.
Искомое совпадение: символы A, B, C присутствующие одновременно.

А и B я еще найти могу.
a = "qwertyqwerBtCyA";
a_reg = /A.*?B|B.*?A/i;


Но если в искомые добавить C, то прийдется таких "или" плодить 8 штук.

Для проверки последовательности (C)A(C)B.
a_reg = /CA.*?B|AC.*?B|C.*?A.*?B|A.*?C.*?B/i;

Для части (C)B(C)A будет почти тоже.

Казалось бы сошло как никак для трех букв. А если их 8, то решение будет явно громоздкое.
Ответить с цитированием