正则表达式,如linux命令

时间:2013-10-31 09:52:00

标签: php regex preg-replace preg-match

因为它应该是一个正则表达式来做到这一点?喜欢做一个正则表达式吗?

我的字符串:

value11-TTable的-MTEST-xtest2

我想要:

(main value) value11

(-t value) = table 
(-m value) = test
(-x value) = test2

并且可能添加更多-y参数

由于

3 个答案:

答案 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次,但 -