У меня есть некоторые параметры, которые я должен сортировать по разным спискам. Префикс определяет, к какому списку должен принадлежать.Группирование регулярных выражений на основе предыдущего результата группировки
Я использую префиксы: c
, a
, n
, o
и дополнительный дефис (-
), чтобы определить, нужно ли поместить его в включают л оно или исключить из списка.
Я использую регулярное выражение сгруппированных, как:
/^(-?)([o|a|c|n])(\w+)/
Но вот третья группа (\w+
) не является универсальным, и оно должно быть на самом деле зависит от результата второго группы. Т.е., если префикс:
- 'с' или 'а' ->
/\w{3}/
- 'о' ->
/\w{2}/
- еще ->
/\w+/
Могу ли я сделать это с одно регулярное выражение? В настоящее время для этого я использую условие if
.
Пример входных данных:
Действительно:
"-cABS", "-aXYZ", "-oWE", "-oqr", "-ncanbeanyting", "nstillanything", "a123", "-conT" (will go to c_exclude_list)
Недопустимый:
"cmorethan3chars", "c1", "-a1234", "prefizisnotvalid", "somethingelse", "oABC"
Выход: для каждого агд толчок к правильному списку, игнорировать недействительным.
c_include_list, c_exclude_list, a_include_list, a_exclude_list etc.
что вход и выход expecter – vks
Ваш вопрос не имеет особого смысла в настоящее время. Ваше изменение просто отменяет ответы ниже. Какая черта - c_exclude_list? – nhahtdh
Исправлено редактирование. – Zack