我的文字是这样的;
[name]JAAN JOHN[/name]
[cell]09178656469[/cell]
[city]Dhaka[/city]
我想使用正则表达式在上面每个[ ]
引号之间获取文本。请原谅我,因为我搜索了很多这个网站,但无法得到我所需的答案。请帮助!
编辑:
例如,我想得到这样的结果:
Name: JAAN JOHN
Cell #: 09178656469
City: Dhaka
如何得到这个结果?
使用反向引用,从索引2中获得匹配的组。在下面的示例代码中,我对cell
标签
'[(cell)'](.*?)'['/'1']
这里是demo
如果您对与结束标签匹配的的所有标签感兴趣,请尝试
'[(.*?)'](.*?)'['/'1']
这里是demo
从索引1中获取所需的标签名,从索引2中获取所需的值。
示例代码:
$re = "/''[(.*?)''](.*?)''[''/''1'']/";
$str = "[name]JAAN JOHN[/name]'n[cell]09178656469[/cell]'n[city]Dhaka[/city]";
preg_match_all($re, $str, $matches);
此正则表达式将用于每行。
'[[^']]+'](.*?)'['/[^']]+']
使用前向和后向断言
((?<=]).*(?='['/))
参见这个演示