匹配php中以大写字母开头的单词


Match words starting with capitals in php?

我有一个字符串

 $str="NassarWellerGomez-GarciaSanchez-RenedoLoeches-SanchezGomez-GarciaMunoz-FerrerasSanchez-RenedoChiaoHakkarainenWernerValkamaHarounPlett";

我只想匹配以大写字母开头的单词,比如:纳塞尔韦勒Gomez-Garcia等

I used this : 
preg_match('/[A-Z][a-z]+/', $str,$match);

但是它不起作用,请帮我一下!

preg_match_all('/[A-Z][a-z]*(?:-[A-Z][a-z]*)*/', $str, $match);
var_dump($match[0]);

试试这个:

$result = preg_split('/[A-Z]/', $str, null, PREG_SPLIT_DELIM_CAPTURE);
var_dump($result);

我还没有测试过,但我认为它会起作用,或者至少给你指明了正确的方向。

对于连字符名称不起作用。为此,我相信你需要使用(积极或消极)向后看,但我不知道足够的解释我的头。你得去查一下,但至少现在你知道该找什么了。


查看http://www.regular-expressions.info/lookaround.html作为快速参考,看起来这可能是您需要的具有负面外观的正则表达式:

'/(?<!-)[A-Z]/'

这基本上意味着"匹配任何大写字母,不包括后面跟着连字符的。"