这是我的字符串:
$string="VARHELLO=helloVARWELCOME=123qwa";
我想从字符串中获取'hello'和'123qwa'。
我的伪代码是。
if /^VARHELLO/ exist get hello(or whatever comes after VARHELLO and before VARWELCOME) if /^VARWELCOME/ exist get 123qwa(or whatever comes after VARWELCOME)
注意:来自'VARHELLO'和'VARWELCOME'的值是动态的,因此'VARHELLO'可能是'H3Ll0'或VARWELCOME可能是'W3l60m3'。
Example: $string="VARHELLO=H3Ll0VARWELCOME=W3l60m3";
答案 0 :(得分:4)
以下是一些代码,它会将此字符串解析为更可用的数组。
<?php
$string="VARHELLO=helloVARWELCOME=123qwa";
$parsed = [];
$parts = explode('VAR', $string);
foreach($parts AS $part){
if(strlen($part)){
$subParts = explode('=', $part);
$parsed[$subParts[0]] = $subParts[1];
}
}
var_dump($parsed);
输出:
array(2) {
["HELLO"]=>
string(5) "hello"
["WELCOME"]=>
string(6) "123qwa"
}
或者,使用parse_str
(http://php.net/manual/en/function.parse-str.php)
<?php
$string="VARHELLO=helloVARWELCOME=123qwa";
$string = str_replace('VAR', '&', $string);
var_dump($string);
parse_str($string);
var_dump($HELLO);
var_dump($WELCOME);
输出:
string(27) "&HELLO=hello&WELCOME=123qwa"
string(5) "hello"
string(6) "123qwa"
答案 1 :(得分:2)
杰西卡的答案很完美,但是如果你想用preg_match
$string="VARHELLO=helloVARWELCOME=123qwa";
preg_match('/VARHELLO=(.*?)VARWELCOME=(.*)/is', $string, $m);
var_dump($m);
您的搜索结果为$m[1]
和$m[2]
array(3) {
[0]=>
string(31) "VARHELLO=helloVARWELCOME=123qwa"
[1]=>
string(5) "hello"
[2]=>
string(6) "123qwa"
}