你不應該試圖重疊班,貪婪或非貪婪quantifers混合。
你必須知道你想要什麼,並劃出鮮明的邊界。
# /^\s*(\w(?:[ ]?\w+)*)\s{2,}(\w(?:[ ]?\w+)*)\s{2,}(\w(?:[ ]?\w+)*)\s*$/
(?x) # Modifier group, x = eXpanded
^ # BOL
\s* # optional many whitespaces at start
(\w (?: [ ]? \w+)*) # (1) word char start, word char end, optional 1 space between words
\s{2,} # minimum 2 whitespace
(\w (?: [ ]? \w+)*) # (2) word char start, word char end, optional 1 space between words
\s{2,} # minimum 2 whitespace
(\w (?: [ ]? \w+)*) # (3) word char start, word char end, optional 1 space between words
\s* # optional many witespaces before end
$ # EOL
來源
2013-10-26 00:24:37
sln
關於優先順序,我參考了http://docstore.mik.ua/orelly/perl3/lperl/ch08_05.htm – t0mmyt