将特定位置的字符串拆分为数组

时间:2014-07-29 09:17:11

标签: arrays string split

我在PHP中有一个字符串。

(check_nt!USEDDISKSPACE!-l g -w 90 -c 95)

我想将第一个!check_ntUSEDDISKSPACE之间)的字符串拆分为两个数组。

我想用strpos来获取第一个星座的位置。 我不知道如何将我从strpos得到的数字位置的字符串拆分为返回值。

3 个答案:

答案 0 :(得分:1)

使用以下正则表达式:

^(\([^!]+)([ -~]+)$

这会给你:

Grp 1.      `(check_nt`
Grp 2.      `!USEDDISKSPACE!-l g -w 90 -c 95)`

答案 1 :(得分:1)

我假设你使用PHP,所以除substr外还要考虑strpos

$str = "(check_nt!USEDDISKSPACE!-l g -w 90 -c 95)";

$pos = strpos($str, "!");

$a = substr($str, 0, $pos);    // $a = "(check_nt"
$b = substr($str, $pos + 1);   // $b = "USEDDISKSPACE!-l g -w 90 -c 95)"

使用explode的其他方法:

$str = "(check_nt!USEDDISKSPACE!-l g -w 90 -c 95)";

$arr = explode("!", $str, 2);  // $arr[0] = "(check_nt"
                               // $arr[1] = "USEDDISKSPACE!-l g -w 90 -c 95)"

请注意,这两种方法都会删除要分割的!

答案 2 :(得分:0)

使用正则表达式:

/^.*!/

将匹配字符串的第一部分,而

/!.*$/

到第二部分。但实现取决于您使用的语言。