2014-12-08 252 views
0

余米尝试多个正则表达式组组合成一个单一的正则表达式模式合并多个正则表达式组在一个正则表达式

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 

此文块:

我测试以查看这是否适用于大写,InitialCase和mixedCase,当然这也是mxxcase。第一首案例不应该匹配。 FirstWordMixed案件应该是。大写的第一个单词应该是。当然,将UPPER mixEd Initicase的任意组合组合起来的短语应当作为一个短语而不是一个单词,当然可以是Initcase1 Initcase2 Initcase3。最后,它需要匹配所有类型的协会,如协会的首字,协会的最后一词,中间词协会。

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

+0

'结合[A-Z]'不会做的工作,你的预期。 – 2014-12-08 05:53:32

+0

@AvinashRaj你能指正我吗? – 2014-12-08 05:54:12

+0

以匹配大写和小写字母'[A-Za-z]' – 2014-12-08 05:58:05

回答

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

+0

是的,你得到了我的point..I已经尝试this..But它不会似乎是Initialcaps和短语 – 2014-12-08 06:29:01

+0

CASE_INITIALCAPS和乐句工作是missing..Initialcase应该像:HTTPS://regex101.com/r/qK1sA5/33 – 2014-12-08 06:31:27

+0

而对于短语它应该像:HTTPS://regex101.com/r/uX1rO7/3 – 2014-12-08 06:32:31