因为它应该是一个正则表达式来做到这一点?喜欢做一个正则表达式吗?
我的字符串:
value11-TTable的-MTEST-xtest2
我想要:
(main value) value11
(-t value) = table
(-m value) = test
(-x value) = test2
并且可能添加更多-y参数
由于
答案 0 :(得分:1)
如果没有正则表达式,这看起来更容易解决。这里有一个建议:
$values = array();
foreach (explode('-', 'value11-ttable-mtest-xtest2') as $index => $string) {
if ($index == 0) {
$values['main'] = $string;
} else {
$option = substr($string, 0, 1);
$value = substr($string, 1);
$values[$option] = $value;
}
}
答案 1 :(得分:0)
你在这里要问的不是很清楚。您可以使用
获得您描述的结果explode('-', 'value11-ttable-mtest-xtest2');
为什么要使用ergular表达式?
答案 2 :(得分:0)
此正则表达式:^([^-]*)(?:-([^-])([^-]+))*$
preg_match_all
应该有效。
其中:
([^-]*)
:捕获任何字符的0到n倍,但是 - -([^-])
:在([^-]+)
:捕捉任意角色1至n次,但 -