首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从字符串中获取恰好x位数的数字

从字符串中获取恰好x位数的数字
EN

Stack Overflow用户
提问于 2013-03-09 22:11:03
回答 2查看 1.8K关注 0票数 0

我正在寻找一个正则表达式模式,它恰好匹配一个长度为x的数字(假设x是2-4),而不匹配其他值。

示例:

"foo.bar 123 456789""foo.bar 456789 123"" 123""foo.bar123 "只能匹配"123“

所以。只有数字,没有空格,字母或其他东西。

我该怎么做呢?

编辑:我想使用c#中的Regex.Matches()函数来提取这个2-4位的数字,并在其他代码中使用它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-09 22:35:08

任何后跟{m,n}的模式都允许该模式出现m到n次。因此,在本例中,m和n的必需值为\d{m,n}

如果要匹配x123y中的123,而不是1234中的123,请使用\d{3}(?=\D|$)(?<=(\D|^)\d{3})

它向前看,以确保3位数字后面的字符是非数字字符或根本不是,并向后看,以确保3位数字之前的字符是非数字字符或根本不是。

票数 1
EN

Stack Overflow用户

发布于 2013-03-10 01:16:13

您可以使用基本RegEx来实现这一点:

\b(\d\d\d)\b\b(\d{3})\b -用于匹配恰好为3位数字的数字

如果您想要变量数字:\b(\d{2,4})\b (explained demo here)

如果你想捕捉单词旁边的匹配:\D(\d{2,4})\D (explained demo here)

\b是一个单词边界(不匹配任何内容,它是一个零匹配字符)

\d仅匹配数字

\D匹配任何不是数字的字符

()所有圆括号中的内容都将捕获匹配项

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

https://stackoverflow.com/questions/15311619

复制
相关文章

相似问题

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