它可能很简单,但我在这里挣扎......我需要一个正则表达式来表示重复的数字,如果字符串长度为 7 或 9 位,它应该匹配
问问题
5069 次
3 回答
2
试试(\d{7}|\d{9})
。这样你就不会匹配一个八位数的长字符串。
编辑 I:正如 Alex 提出的(见评论)\d{7}(\d{2})?
甚至可能表现更好。
编辑二:好的,重新阅读问题,得到问题。\D\d{7}(\d{2})?\D
应该这样做。这也不匹配 8 位数字中的 7 位数字。
编辑 III:或使用 M42 建议的单词边界
于 2012-12-04T12:13:22.373 回答
2
怎么样:
\b\d{7}(?:\d\d)?\b
单词边界确保您只有 7 或 9 位数字
于 2012-12-04T12:20:31.753 回答
1
试试这个。这是针对 C# 的。但它应该适用于其他语言。
(\d{7})|(\d{9})
这是它的工作原理:
| 表示或
{7} 表示匹配 7 次
\d 代表任何数字
于 2012-12-04T12:13:32.287 回答