Объедините несколько групп регулярных выражений в одном регулярном выражении

0

Я пытаюсь объединить несколько групп шаблонов регулярных выражений в один шаблон регулярного выражения

Демо здесь

\b 
(?<CASE_UPPER>[[:upper:]]+)
(?<CASE_MIXED>[A-z]*[A-Z][A-z]*+)
(?<CASE_INITIALCAPS>[A-Z][a-z]+[A-Z]*+)
(?<PHRASE>[A-Z][\w-]*\s+[A-Z][\w-]*+)
\b

Для этого блока текста:

Я проверяю, работает ли это для UPPERCASE, InitialCase и mixedCase, который, конечно же, также является mIxedcase. Первоначальный случай первого слова не должен совпадать. Случай FirstWordMixed должен быть. Первым словом UPPERCASE должно быть. И, конечно, фразы, которые сочетают любую комбинацию UPPER mixEd Initicase, следует вытягивать как фразу, а не слово, которое может быть, конечно, Initcase1 Initcase2 Initcase3. Наконец, он должен соответствовать всем сортам ассоциаций, таким как Ассоциация первых слов, последнее слово для ассоциации, Ассоциация среднего слова для слов.

Он работает с единой группой, но не работает со всеми вместе. Я не знаю, правильно ли я делаю это! Любая помощь будет оценена по достоинству.

  • 0
    [Az] не сделает работу, которую вы ожидали.
  • 0
    @AvinashRaj Можете ли вы поправить меня?
Показать ещё 4 комментария
Теги:
pcre

1 ответ

0
Лучший ответ

Основываясь на том, что я понял

Вы можете использовать чередование | объединить различные регулярные выражения

\b 
((?<CASE_UPPER>[[:upper:]]+)|
(?<CASE_INITIALCAPS>[A-Z][a-z]+[A-Z]*+)|
(?<CASE_MIXED>[A-z]*[A-Z][A-z]*+)|
(?<PHRASE>[A-Z][\w-]*(\s+[A-Z][\w-]*)+))
\b

Пример регулярного выражения

  • 0
    Да, вы поняли мою точку зрения .. Я уже попробовал это .. Но, похоже, это не работа с Initialcaps и Phrases
  • 0
    CASE_INITIALCAPS и PHRASE отсутствуют. Начальный регистр должен работать так: regex101.com/r/qK1sA5/33
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню