2012-01-20 142 views
1

字符串我有一个字符串:PHP正则表达式:从括号内

$a = "Name[value]"; 

如何获得“姓名”和字符串的“价值”的部分转换成从该字符串变量?我在正则表达式方面并不擅长。谢谢!

回答

10

所以这应该为你做的伎俩:

(.*)\[(.*)\] 

这是PHP语法:

<?php 
$subject = "Name[value]"; 
$pattern = '/(.*)\[(.*)\]/'; 
preg_match($pattern, $subject, $matches); 
print_r($matches); 
?> 

输出:

Array 
(
    [0] => Name[value] 
    [1] => Name 
    [2] => value 
) 

享受。

1
<?php 

/** 
* Regex Quick Extraction - ignore $matches[0]; 
*/ 

$a = "Name[value]"; 

preg_match('/([^\]]*)\[([^\]]*)\]/',$a,$matches); 

if(count($matches) > 0) { 
    print_r($matches); 
} 

?> 
1

试试这个:

<?php 
$a = "Name[value]"; 
preg_match('/(?<name>.*?)\[(?<value>.*[^\]]+)/', $a, $matched); 
echo '<pre>'; 
print_r($matched); 
?> 

输出:

Array 
(
    [0] => Name[value 
    [name] => Name 
    [1] => Name 
    [value] => value 
    [2] => value 
)