首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >识别独立编号的Regex

识别独立编号的Regex
EN

Stack Overflow用户
提问于 2017-04-20 20:27:58
回答 5查看 240关注 0票数 0

我有一个字符串,可能包含数字,也可能不包含数字。如果有一个数字,它将是独立的,如'3200联邦快递FL‘或'10唐宁街’,或作为一个名称的一部分,如‘4 ST NW’,'I96‘或’is 28‘。我正在寻找一个正则表达式,它将忽略独立数字,并给出字符串的其余部分,但将数字保留为名称的一部分。

试过

代码语言:javascript
复制
Function getAddress(addr As String)  
Dim allMatches As Object  
Dim RE As Object  
Set RE = CreateObject("vbscript.regexp")  
RE.Pattern = "(\b[\d]+\b)"   
RE.Global = True  
RE.IgnoreCase = True 

Set allMatches = RE.Execute(addr)

If (allMatches.Count <> 0) Then
    result = allMatches.Item(0).submatches.Item(0)
End If
getAddress = result
End Function

示例数据集

0 I64 EB MM 93

金斯克罗斯道1519号

28 VA288 298

约翰·伦道夫路

4700沃尔姆斯利BL

保龄球绿道/鲍伯白道

布鲁斯CT /FLORIDA AV

巴克路和白厅路

市区EWRESSWY第2街

HYHLAND VISTA / GEORGE WASHINGTON BL

HYHLAND VISTA / GEORGE WASHINGTON BL

HYHLAND VISTA DR / GEORGE WASHINGTON BL

I95 25 43

LAUARL岭轧机路/CLARENCE路

LAUARL岭轧机路/CLARENCE路

诺瓦霍华德街/SEMINARY路

老科瓦豪塞路R

老科瓦豪塞路R

伍德兰和罗诺克

1501 SAMS CR1

怀特海路15281号

1532年万宝路街

布兰德桥路16907号

1750年威廉街

预期产出:

I64 EB MM

金斯克罗斯路VA288约翰兰道夫路

保龄球绿道/鲍伯白道

布鲁斯CT /FLORIDA AV

巴克路和白厅路

市区EWRESSWY第2街

HYHLAND VISTA / GEORGE WASHINGTON BL

HYHLAND VISTA / GEORGE WASHINGTON BL

HYHLAND VISTA DR / GEORGE WASHINGTON BL

I95

LAUARL岭轧机路/CLARENCE路

LAUARL岭轧机路/CLARENCE路

诺瓦霍华德街/SEMINARY路

老科瓦豪塞路R

老科瓦豪塞路R

伍德兰和罗诺克

SAMS CR1

怀特黑德路

万宝路街

布兰德斯桥路

威廉街

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-04-20 21:23:52

使用Replace对象的RegExp方法:

代码语言:javascript
复制
RE.Global = True   
RE.Pattern = "\b\d+(\s|$)"
result = RE.Replace(addr, "") ' Remove all matches from string
票数 0
EN

Stack Overflow用户

发布于 2017-04-20 20:43:23

尝试以下正则表达式:

代码语言:javascript
复制
(?![0-9]+\s).

它查找后面跟着空格的连续数字,并否定它们。

票数 0
EN

Stack Overflow用户

发布于 2017-04-20 20:44:40

它似乎更容易匹配独立数字,并将它们替换为空字符串。独立的数字正则表达式(包含周围的空格)是

代码语言:javascript
复制
\s*\b\d+\b\s*

演示:https://regex101.com/r/JuEAQd/1

注意:上面演示中的输出结果有点混淆,因为所有测试字符串都放入一个输入,但当一个接一个地输入时,https://regex101.com/r/cvwUzQ/1 https://regex101.com/r/g07lGg/1 https://regex101.com/r/XC1CLR/1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43529300

复制
相关文章

相似问题

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