首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从字符串获取某些数据的PHP

从字符串获取某些数据的PHP
EN

Stack Overflow用户
提问于 2015-03-22 23:04:40
回答 1查看 36关注 0票数 0

我有如下数据

代码语言:javascript
复制
<terminal:Text>1  #VS   5 J9 C9 D9 I9 Z9 W9 S9 H9 LHRMIA 1235 1705      744 0E</terminal:Text>
<terminal:Text>        K9 Y9 B9 R9 L9 U9 M9 E9 Q9 X9 N9 O9 </terminal:Text>
<terminal:Text>2  #IB4637 F9 A9 J9 C9 D9 R9 I. W9 LHRMIA 1415 1825   *  744 0E</terminal:Text>
<terminal:Text>        Z. Y9 B9 H9 K. M. L. V. S. N. Q. O.</terminal:Text>
<terminal:Text>3*O#AA  57 F7 A7 P7 J7 R7 D7 I7 Y7 LHRMIA 0945 1415      777 0E</terminal:Text>
<terminal:Text>        B7 H7 K7 M7 L7 V7 G7 S7 Q7 N7 O7 </terminal:Text>

我试图找出最好的方法来分离这些数据,所以我得到了我需要的数据。首先,我执行以下操作

代码语言:javascript
复制
$elNum = 0;

while ($elNum < $elements->length) 
{
    $flightInfo = $elements->item($elNum)->nodeValue;

    if ( preg_match('/^\\d/', $flightInfo ) === 1 )
    {

        ++$elNum;
    }
}

$elements表示我传递它的每个文本元素。这是我所知道的。主行总是以一个数字开头,这就是为什么我要做那个preg_match。以数字开头的行后面的行与前一行相关。本质上,在上面的例子中,每个航班有两行。

我正在考虑在空间上爆炸,但我可能会这样做,当涉及到获得座位(J9,M,I7等)。首先,我需要航班号码。

航班号总是以#开头。航空公司的代码总是两个大写字母,航班号可以是1-4位数字.所以有了上面这些,我可以做一些类似的事情

代码语言:javascript
复制
$pat = strpos($flightInfo, "#");

这样我就能知道每个航班的开始了。这里是棘手的部分,航班号与上面的例子不一样。第一个是VS,然后是2个空格,然后是5个(所以VS5)。第二个是直进式,它是所有的集合(IB4637)。最后一个是AA,然后是2个空间,然后是57 (AA57)。有时只有一个空间。

因此,航空公司代码将始终附加到#上,我知道它的长度总是2,所以为了得到它,我可以做一些类似的事情

代码语言:javascript
复制
$fltcode = substr($flightInfo, $pat+1, 2);

我的主要问题是,我如何处理它的数字部分,当它可以是1-4的长度,它可以附加到航班号码,但它也可以分开一个或多个空间?

任何指导都很感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-22 23:20:09

如果您请求regex解决方案,可以尝试这个判据

\d+[^#]*\#(\p{Lu}{2})\s*(\d{1,4})\b

(?<=<terminal:Text>)\d+[^#]*\#(\p{Lu}{2})\s*(\d{1,4})\b (如果元素节点位于文本节点前面)

基本上,它捕获两个组的航班号,包括2个大写字母和1到4个数字,你需要加起来。

输出:

代码语言:javascript
复制
MATCH 1
1.  [4-6]   `VS`
2.  [9-10]  `5`
MATCH 2
1.  [113-115]   `IB`
2.  [115-119]   `4637`
MATCH 3
1.  [221-223]   `AA`
2.  [225-227]   `57`
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29200940

复制
相关文章

相似问题

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