特定事件发生后PHP拆分字符串

时间:2013-09-17 16:07:05

标签: php

我有以下字符串我试图根据特定的发生情况分成不同的变量

Brodel8DARK HORSE COMICS

我希望我的最终结果是

$user = Brodel

$index = 8

$publisher = DARK HORSE COMICS

我试过玩一些reg表达式,但我是新手

这种情况永远是真的

用户名将改变(不同数量的字符等..) 索引将始终为整数,但可以增长到3+位 发布者将始终全部上限

感谢您的帮助

2 个答案:

答案 0 :(得分:5)

只要发布者不以数字开头,那么这个正则表达式应该可以正常工作

/^([A-Za-z]+)(\d+)([A-Z\s]+)$/

它是0+个字符后跟0+个数字,最后是0 +大写字母。

<?php

$string = 'Brodel8DARK HORSE COMICS';

if(preg_match('/^([A-Za-z]+)(\d+)([A-Z\s]+)$/', $string, $matches) === 1){
    var_dump($matches);
}

输出:

array(4) {
  [0]=>
  string(24) "Brodel8DARK HORSE COMICS"
  [1]=>
  string(6) "Brodel"
  [2]=>
  string(1) "8"
  [3]=>
  string(17) "DARK HORSE COMICS"
}

答案 1 :(得分:2)

试试这个:

<?php
$string = 'Brodel8DARK HORSE COMICS';
preg_match("/^([^\d]+)(\d+)([A-Z\s]+)$/", $string, $match);

//print_r($match);
echo $publisher = $match[3];//DARK HORSE COMICS
?>