首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在具有时间间隔的数组中使用正确的项。

在具有时间间隔的数组中使用正确的项。
EN

Stack Overflow用户
提问于 2017-05-02 15:01:56
回答 1查看 45关注 0票数 0

我有些短信看起来是这样的:

维德维德马肯 12-14 upp :Omr de E3a: N/2-5节,经14UTC至13节。 Omr de E2b: N/2-5节,14到14节。 E1a,E1b: NV/0-6节,至15节。 Omr de E2a: N/1-6节,å到12节。14- 16 upp :Omr de E1b: N/2-6节,经16UTC至16节。 Omr de E3a: N/3-6节。 Omr de E2b: N/3-5节。 欧姆罗德E2a: N/1-5节,由12到12节。 Omr de E1a: N/0-6节,14到14节。16-18 upp :Omr de E1b: N-NO/1-7节,15至15节。 欧姆罗德E2a,E2b: N/0-4节,由12到12节。 Omr de E1a: NO/3-8节,15直到15节。 Omr de E3a: NO/1-6节,13直到13节。18-20 Omr:Omr de E2b,E3a: NO/1-5节。 Omr de E1b,E2a: N-NO/0-5节,å直到11节. Omr de E1a: NO/1-7节.

我的目标是找到正确的位置和时间的值。

如您所见,文本在时间和区域(例如E3a)中被欺骗,并且在下一个时间间隔中重复相同的区域。

使用这个regex:preg_match_all("/(\d{2}-\d{2})UTC/", $text, $arr);

我得到这个数组:

代码语言:javascript
复制
array(2  
      0 =>  array(4  
          0 =>  12-14UTC  
          1 =>  14-16UTC  
          2 =>  16-18UTC  
          3 =>  18-20UTC  
      )  

      1 =>  array(4  
          0 =>  12-14  
          1 =>  14-16  
          2 =>  16-18  
          3 =>  18-20  
     )  
)  

现在是世界协调时间14:52。

我该怎么..。让我们说回波$arr[1][1],因为我知道现在的时间是14到16?

我需要正则表达式保持上面的方式,或者至少保持$arr[0],因为在下一个regex模式中我需要这样做。

我被困在这里,因为我不知道如何知道在下一个正则表达式中需要的时间间隔。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-02 15:14:09

试一试

代码语言:javascript
复制
preg_match_all("(\d{2})-(\d{2})UTC", $text, $arr);

还应该是:

代码语言:javascript
复制
array(3
      0 =>  array(4
        0   =>  12-14UTC
        1   =>  14-16UTC
        2   =>  16-18UTC
        3   =>  18-20UTC
    )
  1 =>  array(4
        0   =>  12
        1   =>  14
        2   =>  16
        3   =>  18
    )
  2 =>  array(4
        0   =>  14
        1   =>  16
        2   =>  18
        3   =>  20
    )
)

在这里,您可以通过迭代或回调使用array1和array2的值与当前时间(使用date("G"))进行比较。

由于您将从regex中提取时间值,我还建议您尽可能最好地使用intval()检查输入。

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

https://stackoverflow.com/questions/43741229

复制
相关文章

相似问题

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