現在、PHPpreg_matchステートメントに正規表現があります preg_match($regex,trim($searchText),$matches);
使用されている正規表現は(区切り文字なしで)
Primary Redeemer: (?<name>.*), (?<phone>.*), (?<email>.*).*[.\r\n\s]*.*Valid Travelers:.*[.\r\n\s]*.*Valid Days: (?<date_in>\d{4}\/\d{2}\/\d{2}) - (?<date_out>\d{4}\/\d{2}\/\d{2}).*[.\r\n\s]*.*Item: (?<desc>.*) \/.*[.\r\n\s]*.*Voucher #: (?<voucher>\d+) Itin. #:(?<itin>\d+)
それは次の問題に対して$searchText
うまく実行されます(予想どおり)
Booking
1 Travelers -- Vehicles: 1 (TBA),
Primary Redeemer: Joe Schmoe, 1 (555) 5555555, schmoe@joe.com
Valid Travelers: Joe Schmoe, Sue Schmoe, Schmoe twins,
Valid Days: 2012/01/01 - 2012/02/02
Item: Some Item Purchased - weekly 12345 /
Voucher #: 10835756 Itin. #:153244150897
$matches配列内のさまざまな名前付き要素を返します。ただし、出発と帰りの両方に1つ以上の路線がある可能性のある新しい要素(フライト)が導入されました。
Booking
1 Travelers -- Vehicles: 1 (TBA),
Primary Redeemer: Joe Schmoe, 1 (555) 5555555, schmoe@joe.com
Valid Travelers: Joe Schmoe, Sue Schmoe, Schmoe twins,
Valid Days: 2012/01/01 - 2012/02/02
Flight ABC to DEF
AL 1234 departs ABC 01/01/2012 06:15 arrives BCD 01/01/2012 08:45
AL 2345 departs BCD 01/01/2012 09:40 arrives DEF 01/01/2012 11:33
Flight DEF to ABC
AL 3456 departs DEF 02/02/2012 10:50 arrives BCD 02/02/2012 13:12
AL 4567 departs BCD 02/02/2012 14:00 arrives ABC 02/02/2012 15:30
Item: Some Item Purchased - weekly 12345 /
Voucher #: 10835756 Itin. #:153244150897
残りのマッチング/リターンをそのままにして、表示される可能性のある可変フライト情報ラインをキャプチャ(および/または破棄)するためのいくつかのハードルに逆らって実行します。
前もって感謝します。