2011-08-13 13 views

回答

1

好吧,一個非常簡單的正則表達式將是/\b([A-Z][a-z]+) ([A-Z][a-z]+)\b/

編輯:這不處理奇數大寫和偏離撇號。

編輯:刪除^$,放置單詞邊界。

+1

O'Donnell,McCartney? :-) –

+0

喬安娜K.羅琳? –

+0

@Bo,有效點。沒想到我可以逃脫。因此「非常簡單」:) –

0

你可以從這樣的事情開始。

#include<regex> 
#include<iostream> 
int main() 
{ 
    // regular expression 
    const std::regex pattern("([A-Z][a-z]+)\s([A-Z][a-z]+)"); 

    // the source text 
    std::string text = "string containing names ..."; 

    const std::sregex_token_iterator end; 
    for (std::sregex_token_iterator i(text.cbegin(), text.cend(), pattern); 
     i != end; 
     ++i) 
    { 
     std::cout << *i << std::endl; 
    } 

    return 0; 
} 

學習正則表達式的幫助。

相關問題