我有以下字符串我试图根据特定的发生情况分成不同的变量
Brodel8DARK HORSE COMICS
我希望我的最终结果是
$user = Brodel
$index = 8
$publisher = DARK HORSE COMICS
我试过玩一些reg表达式,但我是新手
这种情况永远是真的
用户名将改变(不同数量的字符等..) 索引将始终为整数,但可以增长到3+位 发布者将始终全部上限
感谢您的帮助
答案 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
?>