簡體   English   中英

PHP正則表達式創建數組

[英]PHP Regular expression to create an array

我有一個從iCal提取的字符串,該字符串輸出描述。 我想每次進行描述,並使用所需的對象創建一個數組。 它們始終遵循相同的模式。

例如,我有:

Description: Trip status: Confirmed\n \n FLIGHT INFORMATION: \n \n United Airlines UA 485: \n \n \n From: Newark Liberty International (New York, USA) - TerminalC at Fri, Sep 28, 2012 16:34 (local time) \n To: Denver International (Denver, USA) at Fri, Sep 28, 2012 18:47 (local time) \n Cabin: Economy Restricted\n Duration: 04:13\n Stop(s): 0\n Aircraft: Boeing 757-200\n

接着

Description: Trip status: Confirmed\n \n FLIGHT INFORMATION: \n \n Air Canada AC 1072: \n \n \n From: Denver International (Denver, USA) at Sat, Sep 29, 2012 10:55 (local time) \n To: P Trudeau International (Montreal, Canada) at Sat, Sep 29, 2012 16:29 (local time) \n Cabin: Economy Restricted\n Duration: 03:34\n Stop(s): 0\n Aircraft: Airbus Industrie A319\n

如您所見,不同的輸出遵循相同的結構,因此在理想的世界中,我想要:

$itinery[0]: Confirmed
$itinery[1]: United Airlines UA 485
$itinery[2]: Newark Liberty International (New York, USA)

任何指導,如感激。

謝謝。

您還可以使用explode()將每一行分開

$parts = explode ( $line, '\n' ) ;
print_r ( $parts ) ;

然后用explode($ part [$ i],':')斷開部分以獲取值。

更具體的正則表達式:

說明:\\ s *旅行\\ s +狀態:\\ s +(\\ w +)\\ s *飛行\\ s +信息:\\ s *([^:] +):\\ s *來自:\\ s *([\\ w \\ d _,\\ s-()] +)\\ s + at \\ s +(?: Sun | Mon | Tue | Wed | Thu | Fri | Sat),

做出以下假設:

  • “狀態”只能包含字母。
  • 在“航班信息”應該有結束:
  • “ from”只能包含字母,數字, _,-()或空白字符。 “ from”后面緊跟着以下順序:“ at XXX”,其中XXX是一天(即星期日,星期一,星期二,星期三,星期四,星期五或星期六)。

提示 :
如果狀態屬於封閉列表,則在正則表達式中將(\\w+)替換為(?:Confirmed|Cancelled|Delayed) 如有必要,添加其他狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM