首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP Preg匹配错误

PHP Preg匹配错误
EN

Stack Overflow用户
提问于 2012-06-03 16:23:48
回答 1查看 162关注 0票数 3

在下面的http://gskinner.com/RegExr/中可以使用正则表达式,但不能在PHP中使用

代码语言:javascript
复制
(?>AB/HDR)(?:[^])*?(?=AB/HDR|RUN DATE|\z)

在PHP中它是这样说的:

代码语言:javascript
复制
preg_match() [function.preg-match]: Unknown modifier '(' in E:\xampp\htdocs.....

在下面的变体中没有尝试太多的想法,但是没有结果。

代码语言:javascript
复制
%(?>AB/HDR)(?:[^])*?(?=AB/HDR|RUN DATE|\z)% 
> result : Compilation failed: missing terminating ] for character class at offset 41

%(?>AB/HDR)(?:\[^])*?(?=AB/HDR|RUN DATE|\z)%
> result : 0 match which is incorrect

任何帮助都将非常感谢!

测试数据

代码语言:javascript
复制
RUN DATE: 15FEB12                        F E D E R A L    E X P R E S S     C O R P O R A T I O N             PAGE:    1
RUN TIME: 09:36                               INTERNATIONAL DETAIL MANIFEST                             REPORT: FEVIP093-R1
SEQUENCE: DN,ST,BT,BA,MB,BD,DV,RT,AWB         OUTBOUND REQUEST BY ROUTE                                   



AB/HDR : 4876  6218  1850  ORIG: SYD     DEST: DAC     ORIGIN CNTRY: AU   EXPORT CNTRY: AU   SHIP DATE: 14FEB12
    CONSIGNEE ACCT : 000000000   PHONE : +88 02 8834304        SHIPPER ACCT : 141639668   PHONE : 0299978166
       COMPANY: EASY FLY EXPRESS LTD                              COMPANY: INTERNATIONAL AIR PARTS
       NAME:    ADYET                                             NAME:    GREG FULLER
       ADDRESS: HOUSE NO.4, 5TH FLOOR, ROAD NO.20                 ADDRESS: 5A JUBILEE AVENUE
       ADDRESS: UTTARA, SECTOR-3                                  ADDRESS:
       CITY:    DHAKA                                             CITY:    WARRIEWOOD
       ST/PV:      CNTRY: BD   POSTAL: 1230                       ST/PV:      CNTRY: AU   POSTAL: 2102
       BROKER:                    PHONE:                     CITY:                    CNTRY:      CUSTOMS ID NBR:
    SVC: 0101 BILL-T/C: S BILL-D/T: S   TTL PKGS:     1   TTL WGT:       0.5 K   CURR: USD   CUSTOMS VALUE:        90.00
MAWB:                DESC: AIRCRAFT PARTS, 1 X FILTER

AB/HDR : 4926  0503  9651  ORIG: SYM     DEST: DAC     ORIGIN CNTRY: CN   EXPORT CNTRY: CN   SHIP DATE: 14FEB12           ECI
    CONSIGNEE ACCT : 000000000   PHONE : 880-27701506-9        SHIPPER ACCT : 354519100   PHONE : 26501338-8004
       COMPANY: HOP LUN BANGLADESH                                COMPANY: FINELINE(4403137628)
       NAME:    MR. EMRAN                                         NAME:    MISS WU
       ADDRESS: BLDG NO. 3 (4 STORIED BLDG)                       ADDRESS: 3F BLDG D,  HUICHAO INDUSTRIAL PAR
       ADDRESS: DHAKA EXPORT PROCESSING ZONE                      ADDRESS: SECOND GUSHU ROAD XIXIANG TOWN,
       CITY:    GANAKBARI SAVAR DHAK                              CITY:    BAOAN DIST SHENZHEN
       ST/PV:      CNTRY: BD   POSTAL: 1349                       ST/PV:      CNTRY: CN   POSTAL: 518102
       BROKER:                    PHONE:                     CITY:                    CNTRY:      CUSTOMS ID NBR:
    SVC: 0101 BILL-T/C: O BILL-D/T: C   TTL PKGS:     2   TTL WGT:       7.7 K   CURR: USD   CUSTOMS VALUE:       346.50
MAWB:                DESC: PRICE TICKET L(4821100000)NO BRAND

   CRN:  492605039662


RUN DATE: 15FEB12                        F E D E R A L    E X P R E S S     C O R P O R A T I O N             PAGE:   11
RUN TIME: 09:36                               INTERNATIONAL DETAIL MANIFEST                             REPORT: FEVIP093-R1
SEQUENCE: DN,ST,BT,BA,MB,BD,DV,RT,AWB         OUTBOUND REQUEST BY ROUTE  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-03 16:29:36

首先,这是不允许的

代码语言:javascript
复制
[^]

我已经将其替换为.。其次,您需要模式分隔符:

代码语言:javascript
复制
#(?>AB/HDR)(?:.)*?(?=AB/HDR|RUN DATE|\z)#

忘记了dot matches all修饰符:

代码语言:javascript
复制
#(?>AB/HDR)(?:.)*?(?=AB/HDR|RUN DATE|\Z)#s
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10868891

复制
相关文章

相似问题

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