Javascript正则表达式帮助,负面预测

时间:2016-02-10 12:06:58

标签: javascript regex

我今天正在争夺一些正则表达式,虽然我在这里的一些旧线程的帮助下击败了其中几个,但我还是有点卡在最后一个。

Data sample
SOMETEXT
OTHERWORDS
po8 34t
NAME. VALUE
SURNAME. VALUE

NAME背后是我想尝试提取的邮政编码。显然,邮政编码可以是6位或7位(+1空格)。所以我对邮政编码采取了负面预测的方法,所以我尝试了这一点,希望使用换行作为停止点(基本上读取NAME上方的每一行,直到上一行:

/NAM(?!([/s/S]))/

但这似乎并不是一个可行的解决方案。我已经在方括号中使用了其他片段,但这几乎就是我现在所处的位置。然后我考虑了子串,但我找不到特定于javascript的任何好的正则表达式资源。有什么想法吗?

也许有更好的方式通过正则表达式做到这一点,我也可以这样做?

TEST DATA ADDED ON REQUEST
ORGANISATION CODE
ORGANISATION NAME
ORGANSIATION DEPT
Tel:  0000 777 6666 ROAD
Fax: 0000 777 6666 PLACE
REGION
ZIP
NAME
CODE
ADDRESS1,
ADDRESS NAME,
ADDRESS PLACE,
REGION1
AA6 1ZZ (POSTCODE)
NAME: SURNAME, FORENAME
SPELL NO. 1111111
PERSON ID. 1111111A
SPOUSE ID. 2222222B
Date: 11 Month Year
LETTER CONTENTS (WILL VARY)

所以我追求的价值是之前的(邮政编码),在NAME之前,但REGION1可能会非常不同

2 个答案:

答案 0 :(得分:2)

更新

得到你想要的东西

/(?:\n|\r)+(.{6,7})(?:\n|\r)+NAME:/可能更严格

/(.+)(?:\n|\r)+NAME:/是一个简单的方法,它只是采用NAME:

之前的行

答案 1 :(得分:1)

如果我理解你的问题,也许这可以帮助你:

NAME\.([\s]?)(\d{6,7})

如果您想在JS中使用它,请为组使用g修饰符。