如何在Node.js中检测文本中的地址



我有一个原始文本

Exmp 1:

order pickup details>>> >>> pick up before the store closes on Wed, Apr 11>>> >>> 
scan in-store for order pickup>>> >>> >>> 9019560>>>    Warrenville Target Store>>> 28201 Diehl Rd, Warrenville, IL 60555

Exmp 2:

Come to collect your order in the next 2 days (after that it'll be cancelled). Your payment will be processed as soon as you collect your order.>> >>  >> 
Pickup Store:>> >> Lush Naperville <https://click.e.lush.com/?qs=cbb6669d6dac2528c696ad86bb5b6fd3ebae7703b0b05e2a40dbc6705d0f3325fe891806d5a629b19dbc9b8e9d36e46e7d944d995ea896decd587d210c8bb838>>> 
119 S. Main Street , Naperville, IL 60540>> >> Choose between curbside or in-store pickup.>>

如何在Node.js中从上述文本中提取地址部分。如何解决这个问题?

实际上,这里发生的是。订单确认后,我收到不同店铺的邮件不一样。我需要从邮件中获取店铺地址。这里每个商店使用不同格式的电子邮件订单确认。

在将电子邮件模板转换为文本格式后,我得到了这个原始文本。

下面一个是与我的问题相关的问题。但它是用python编写的。

如何在python中使用NLTK从原始文本中提取地址?

有没有办法从文本中检测地址?我是新手。

Node.js中上述地址格式的RegExp为

var text = "pick up before the store closes on Wed, Apr 11>>> >>> 
scan in-store for order pickup>>> >>> >>> 9019560>>>    Warrenville Target Store>>> 28201 Diehl Rd, Warrenville, IL 60555"
var regex = "[0-9]{1,5} .+, .+, [A-Z]{2} [0-9]{5}";
var Address = text.match(regex);
console.log("Address",Address);
// Address = 28201 Diehl Rd, Warrenville, IL 60555

解释:

[0-9]{1,3}: 1到3位数字,地址编号

(space):号码与街道名称之间的空格

。+:街道名称,出现次数不限的任意字符

,城市前加逗号和空格

。+: city,出现次数不限的任意字符

前加逗号和空格[A-Z]{2}:从A到Z正好2个大写字符

[0-9]{5}: 5位

text.match(regex)将返回一个包含所有匹配项的数组。

然而,这个正则表达式只用于特定类型的地址格式。

最新更新