首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >捕获数字并忽略一个字符

捕获数字并忽略一个字符
EN

Stack Overflow用户
提问于 2015-10-13 17:03:57
回答 3查看 43关注 0票数 0

我有一个文件,上面写着:

代码语言:javascript
运行
复制
528627266255,ANY VALUE,ANY VALUE,812323432-1
736353553,ANY OTHER VALUE,9123234321

我需要捕获以8或9开头的10位数字,并忽略"-“字符(如果找到)。

我尝试使用'[8-9]?[8-9]\d{8}-\d‘正则表达式,当数字有"-“时工作得很好,但是当这个减号不包括时就不工作了。

我的问题是,我怎样才能捕捉到这两种情况有或没有负号呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-13 17:07:38

下面是一个工作的regex,它显示了针对您的测试数据使用以下正则表达式进行的多个匹配:

代码语言:javascript
运行
复制
[8-9]?[8-9]\d{8}-?\d

如果您不希望开头的数字也匹配,那么

代码语言:javascript
运行
复制
\b[8-9]?[8-9]\d{8}-?\d

这里

票数 1
EN

Stack Overflow用户

发布于 2015-10-13 17:27:24

这似乎照你说的做了。

代码语言:javascript
运行
复制
 # [89](?:-?\d){9}

 [89]                  # Starts with 8 or 9
 (?: -? \d ){9}        # Nine more digits, ignore minus sign
票数 0
EN

Stack Overflow用户

发布于 2015-10-13 17:51:20

还可以使用以下regex:

代码语言:javascript
运行
复制
\b([8-9]{1}[0-9-]{9,10})\b
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33108512

复制
相关文章

相似问题

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