它可能是如此简单,但我在这里挣扎...我需要一个重复的数字的正则表达式,如果字符串的长度是 7 或 9 位数,应该匹配

怎么样:
\b\d{7}(?:\d\d)?\b
单词边界确保您只有 7 或 9 位数字
尝试(\d{7}|\d{9})
。这样你就不匹配一个八位数长的字符串。
编辑 I:正如 Alex 所建议的(见注释)\d{7}(\d{2})?
甚至可能表现更好。
编辑 II:好的,重读问题,得到了问题。\D\d{7}(\d{2})?\D
应该这样做。这也不匹配 8 位数中的 7 位数。
编辑 III:或使用 M42 建议的单词边界
试试这个。这是针对 C# 的。但它应该适用于其他语言。
(\d{7})|(\d{9})
这是它是如何工作的:
| 表示 OR
{7} 表示匹配 7 次
\ d 表示任何数字
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(29条)