我想读一个文本文件,因为C ++读了它
这是来自文本文件
的示例(item(name 256) (desc 520)(Index 1)(Image "Wea001") (specialty (aspeed 700)))
(item (name 257) (desc 520) (Index 2) (Image "Wea002")(specialty(Attack 16 24)))
我希望输出像
name : 256
Desc : 520
Index : 1
Image : Wea001
Specialty > aspeed : 700
Name : 257
Desc : 520
Index : 2
Image : Wea002
Speciality > Attack : 16 24
这可能吗?
我试过了:
preg_match_all('/name\s+(.*?)\)\+\(desc\s+(.*?)\)\+\(Index\s+(.*?)\)/', $text, $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
list (, $name, $desc, $index) = $match;
echo 'name : '.$name.' <br> Desc : '.$desc.'<br> Index : '.$index.'';
}
但它并没有给我正确的输出。
谢谢
答案 0 :(得分:2)
<?php
$txt = '(item(name 256) (desc 520)(Index 1)(Image "Wea001") (specialty (aspeed 700))(item (name 257) (desc 520) (Index 2) (Image "Wea002")(specialty(Attack 16 24)))';
preg_match_all('/name\s+(?P<name>\w+).*desc\s+(?P<desc>\d+).*Index\s+(?P<index>\d+).*Image\s+(?P<img>.*)\).*specialty\s*\((?P<speciality>.*)\)\)\)/', $txt, $matches);
foreach($matches['name'] AS $id => $name){
echo 'name : '.$name.' <br> Desc : '.$matches['desc'][$id].'<br> Index : '.$matches['index'][$id].'<br> speciality : '.$matches['speciality'][$id].'';
}
假设您总是使用类似的数据格式