检查字符串是否以某些单词开头,如果是,则将其拆分

Ale*_*lex 3 php regex arrays string

$str = 'foooo'; // <- true; how can I get 'foo' + 'oo' ?
$words = array(  
  'foo',
  'oo'
);
Run Code Online (Sandbox Code Playgroud)

什么是我能找到的最快的方法,如果$str从数组中的一个单词开始,如果是这样的话就拆分它?

Mat*_*hew 5

使用$words$str从您的示例:

$pieces = preg_split('/^('.implode('|', $words).')/', 
             $str, 0, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
Run Code Online (Sandbox Code Playgroud)

结果:

array(2) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(2) "oo"
}
Run Code Online (Sandbox Code Playgroud)

  • @Alex,它应该工作,如果你删除`^`(行标记的开头)并在最后的`/`:''/('.implode('|')之前用`$`(行尾标记)替换它. ',$ words).')$ /'` (3认同)