在一个正则表达式中组合多个正则表达式组

时间:2014-12-08 05:51:34

标签: php regex pcre

我试图将多个正则表达式模式组合成一个正则表达式模式

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。 Firstword初始案例不应该匹配。应该是FirstWordMixed案例。 UPPERCASE第一个字应该是。当然,结合UPPER mixEd Initicase的任何组合的短语应该作为短语而不是单词拉出来当然可以是Initcase1 Initcase2 Initcase3。最后,它需要匹配所有类型的关联,例如第一个单词的关联,最后一个关联词,关键词的中间词关联。

它适用于单组,但不能与所有人一起工作。我不知道我是否以正确的方式做到了!任何帮助将不胜感激。

1 个答案:

答案 0 :(得分: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

Regex Example