我的数据库中有一个文本格式:
Name : John Thompson
Address : 123 street abc state xyz country
如何通过 preg_match 获得 Name ie : Johan Thompson 的值?我试图避免长时间的爆炸过程,因为除了姓名和地址之外,我还会得到其他东西。
我需要一个简单的正则表达式,它可以让我得到一个字符串,其中包含 Name :, Address : 等后面的句子。
我的数据库中有一个文本格式:
Name : John Thompson
Address : 123 street abc state xyz country
如何通过 preg_match 获得 Name ie : Johan Thompson 的值?我试图避免长时间的爆炸过程,因为除了姓名和地址之外,我还会得到其他东西。
我需要一个简单的正则表达式,它可以让我得到一个字符串,其中包含 Name :, Address : 等后面的句子。
简单的说:
$matches = array();
preg_match_all('/^(?P<propname>[^:]+):\s*(?P<propval>.*)$/m', $string, $matches, PREG_SET_ORDER);
print_r($matches);
此正则表达式匹配冒号之前的任何内容并将其捕获,propname
其余到行尾的将被捕获propval
。生成的结构将是
Array
(
[0] => Array
(
[0] => Name : John Thompson
[propname] => Name
[1] => Name
[propval] => John Thompson
[2] => John Thompson
)
[1] => Array
(
[0] => Address : 123 street abc state xyz country
[propname] => Address
[1] => Address
[propval] => 123 street abc state xyz country
[2] => 123 street abc state xyz country
)
)
因为这是一个简单的正则表达式,我假设你不熟悉正则表达式,所以我强烈推荐阅读JF Friedl - 掌握正则表达式,你很快就会轻松地制作出美妙的表达式:-)