首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何只读取部分输入

如何只读取部分输入
EN

Stack Overflow用户
提问于 2011-12-31 00:01:23
回答 2查看 103关注 0票数 0

我正在试图弄清楚如何只读取数据库所需的几行代码,这些行来自一封前夜的“杀死”邮件:

2011.12.30 23:26

受害者:安娜贝尔·色斯特

公司:影子Monolith

联盟: xXDEATHXx的影子

派系:无

被毁:猎豹

系统: C6CG-W

安保: 0.0

遭受的损害: 827个当事方:

姓名: Milena Dush

安保: 0.6

公司: nXo

联盟:无畏的跨越

派系:无

船:猎犬

武器:卡尔达里海军贝恩鱼雷

造成的损坏: 457件被毁物品:

姐妹扩展探针发射器

催化冷气喷射器

纳米纤维内部结构Ⅱ

过驱喷油器系统II

硬布线-基因核心增强CA-2 (货物)

纳米工程(货物)

姐妹核心扫描仪探测器,数量:5(货物)

微型辅助电源核心I(货物)

姐妹深空扫描仪探测器,数量:5(货物)扔下的物品:

隐蔽行动-隐身装置II

姐妹战斗扫描器探测仪,数量:5

经纱消毒器II

纳米纤维内部结构Ⅱ

天体测量精确定位(货物)

小型重力电容器升级I,Qty: 2(货物)

一级打捞工(货物)

拦截器(货物)

热力学(货物)

联合处理器I(货运)

当用户在多个文本框中输入杀伤邮件时,我只需要读取已销毁的项目和丢弃的项目,并将数量包含在单独的字符串中。

有办法吗?

EN

回答 2

Stack Overflow用户

发布于 2011-12-31 00:16:28

你可以使用爆炸(分隔符,文本)分裂成两个文本和数组。例如:$str=explode(":","YourText");

票数 0
EN

Stack Overflow用户

发布于 2011-12-31 00:06:06

代码语言:javascript
复制
<?php
$str = "    2011.12.30 23:26

    Victim: Annabel Lust
    Corp: Shadow Monolith
    Alliance: Shadow of xXDEATHXx
    Faction: None
    Destroyed: Cheetah
    System: C6CG-W
    Security: 0.0
    Damage Taken: 827

    Involved parties:

    Name: Milena Dush
    Security: 0.6
    Corp: nXo
    Alliance: Intrepid Crossing
    Faction: None
    Ship: Hound
    Weapon: Caldari Navy Bane Torpedo
    Damage Done: 457

    Destroyed items:

    Sisters Expanded Probe Launcher
    Catalyzed Cold-Gas Arcjet Thrusters
    Nanofiber Internal Structure II
    Overdrive Injector System II
    Hardwiring - Genolution Core Augmentation CA-2 (Cargo)
    Nanite Engineering (Cargo)
    Sisters Core Scanner Probe, Qty: 5 (Cargo)
    Micro Auxiliary Power Core I (Cargo)
    Sisters Deep Space Scanner Probe, Qty: 5 (Cargo)

    Dropped items:

    Covert Ops Cloaking Device II
    Sisters Combat Scanner Probe, Qty: 5
    Warp Disruptor II
    Nanofiber Internal Structure II
    Astrometric Pinpointing (Cargo)
    Small Gravity Capacitor Upgrade I, Qty: 2 (Cargo)
    Salvager I (Cargo)
    Interceptors (Cargo)
    Thermodynamics (Cargo)
    Co-Processor I (Cargo)
";

var_dump(parseItems('/Destroyed items:(?P<destroyedItems>.*)Dropped items:/is', $str, 1));
var_dump(parseItems('/Dropped items:(?P<droppedItems>.*)/is', $str, 1));
function parseItems($regex, $str, $defaultQty = 0){
    preg_match($regex, $str, $match);
    $lines = explode("\n", $match[1]);
    $defaultQty = 0;
    $items = array();
    foreach($lines as $key => $line){
        $line = trim($line);
        if($line != ""){
            $quantity = (strpos($line, "Qty:") != false) ? getQty($line) : $defaultQty;
            $items[] = array($line => $quantity);
        }
    }
    return $items;
}

function getQty($line){
    preg_match('/, Qty:\s+(?P<quantity>[0-9]+)/', $line, $match);
    return $match['quantity'];
}

这应该会给你一系列的掉落和摧毁线,以及它的数量。它返回关联数组,其中键是行,值是数量。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8685232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档