首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >标识字符串中的地址号

标识字符串中的地址号
EN

Stack Overflow用户
提问于 2017-05-05 01:11:47
回答 5查看 175关注 0票数 2

我有一个地址清单,目前相当不干净。它们的格式如下:

代码语言:javascript
运行
复制
955 - 959 Fake Street
95-99 Fake Street
4-9 M4 Ln
95 - 99 Fake Street
99 Fake Street

我想做的是把街道名称和街道号码分开。我需要一个正则表达式,这个表达式对于

代码语言:javascript
运行
复制
955 - 959
95-99
4-9
95 - 99
99

我现在有这样的情况:

代码语言:javascript
运行
复制
^[0-9][0-9]\s*+(\s*-\s*[0-9][0-9]+)

它适用于两位数字地址,但不适用于三位或一位地址。

谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-05-05 01:19:03

我不知道你想在这里做什么,\s*+,但是你基本上有了最后一部分[0-9][0-9]+的答案,它会在最后找到2+数字。

也许可以试试这个(它更简洁)。这将搜索1+位数而不是2+数。

代码语言:javascript
运行
复制
\d+(\s*-\s*\d+)?
票数 4
EN

Stack Overflow用户

发布于 2017-05-05 01:20:28

您可以对2-3个数字使用大括号{2,3},但*+也不正确。

代码语言:javascript
运行
复制
/^(([0-9]{1,3}\s-\s)?[0-9]{1,3})\s/

我嵌套了大括号,所以您只需要正则表达式的第一个结果。

它就这样破裂了

代码语言:javascript
运行
复制
([0-9]{1,3}\s-\s)?

首先,是否有一个1-3位数和空格-空格可选?

然后..。它的结尾是一个1-3位数,后面是空格吗?

票数 2
EN

Stack Overflow用户

发布于 2017-05-05 01:22:30

以您为例,您可以:

代码语言:javascript
运行
复制
/^(\d+[-\s\d]*)\s/gm

演示

解释:

代码语言:javascript
运行
复制
/^(\d+[-\s\d]*)\s/gm
 ^                      start of line
    ^                   at least 1 digit and as many digits as possible
       ^                any character of the set -, space, digit
             ^          zero or more
                ^       trailing space
                    ^   multiline for the ^ start of line assertion
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43794978

复制
相关文章

相似问题

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