PHP在两个字符串之间获取字符串

PHP在两个字符串之间获取字符串,php,Php,所以我有一个由不同字符串组成的文件。例如: $ADDR:1234 This Address;$NAME:Mike Steve,$NAME:Julia Steve;$IP:139.0.0.35 现在的问题是它不是由一个东西来分隔的,它是由一个,和一个来分隔的

所以我有一个由不同字符串组成的文件。例如:

$ADDR:1234 This Address;$NAME:Mike Steve,$NAME:Julia Steve;$IP:139.0.0.35
现在的问题是它不是由一个东西来分隔的,它是由一个
和一个
来分隔的
都意味着它是一个新字段(我知道这是可怕的数据)

它唯一真正被分隔的是,每个字段都以
$
开头

我需要能够将每个字段(从
$
到下一个
$
)存储到一个变量中

我试过
substr
,但似乎都不正确


非常感谢您的帮助!提前谢谢你

使用php中的explode函数:

$arr = explode("$",$string);
在$arr中,您将拥有一个字符串数组,每个字符串都是字符串的子字符串,通过在由$sign形成的边界上拆分它而形成


更多信息

如果这是一个包含多行的大文件的一部分,则可以将每个变量设置为数组中的一项。
这将便于以后访问这些值

$str = '$ADDR:1234 This Address;$NAME:Mike Steve,$NAME:Julia Steve;$IP:139.0.0.35
        $ADDR:3456 This Address;$NAME:Steve,$NAME:Julia;$IP:139.0.0.36
        $ADDR:7890 This Address;$NAME:Mike,$NAME:Julia Steve;$IP:139.0.0.37';


Preg_match_all("/[$](\w+):(.*?)[\n|,|;]/", $str ."\n" , $m);
$i =-1;
Foreach($m[1] as $key => $val){
    If($val == 'ADDR') $i++; // replace '$ADDR' with what is first item on each line.
    $arr[$i][$val][] = $m[2][$key];
}

Var_dump($arr);

使用“$”字符或带有
g
标志的正则表达式进行分解。
preg\u match\u all((\$(?\w+):(?*???)(=[;,]\$\124$),$input,$matches)应该可以做到这一点。如果它是可解析的,那么您需要正确定义语法。如果无法定义语法,则无法对其进行解析。根据你的描述,你还没有定义语法。这些变量有几行吗?