2014-12-08 8 views
0

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

Demo Here

\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

'[A-Z] 'не будет делать работу, которую вы ожидали. –

+0

@AvinashRaj Можете вы меня исправить? –

+0

для совпадения букв верхнего и нижнего регистра '[A-Za-z]' –

ответ

0

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

Вы можете использовать чередования | сочетать различный Regex

\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 

Regex Example

+0

Да, у вас есть мое мнение. Я уже пробовал это ... Но это не похоже на работу с Initialcaps и фразами –

+0

CASE_INITIALCAPS и PHRASE отсутствуют. Initialcase должен работать как: https: //regex101.com/r/qK1sA5/33 –

+0

И для фраз он должен работать так: https: //regex101.com/r/uX1rO7/3 –

Смежные вопросы