我有一个字符串
$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]/'
这基本上意味着"匹配任何大写字母,不包括后面跟着连字符的。"