我今天正在争夺一些正则表达式,虽然我在这里的一些旧线程的帮助下击败了其中几个,但我还是有点卡在最后一个。
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可能会非常不同
答案 0 :(得分:2)
答案 1 :(得分:1)
如果我理解你的问题,也许这可以帮助你:
NAME\.([\s]?)(\d{6,7})
如果您想在JS中使用它,请为组使用g
修饰符。