正则表达式以匹配特定长度的数字

发布于 2021-01-29 19:11:12

我想匹配一个15位数字(作为较大的正则表达式字符串的一部分)。现在,我有

\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d

但我觉得必须有一种更清洁的方法来做到这一点。

关注者
0
被浏览
143
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    如果您正则表达式语言是Perl兼容的:\d{15}

    在不知道要使用此代码段的外部上下文的情况下,很难说出如何处理边缘(因此您不会意外地抓住多余的数字)。最终的上下文无关解决方案是这样的:

    (?<!\d)\d{15}(?!\d)
    

    您可以将其放在任何正则表达式的中间,它将匹配(并且仅匹配)一个精确的15位数字的序列。但是,这很尴尬,通常是不必要的。假设非字母数字边界(例如,数字周围的空格)的更简单版本是:

    \b\d{15}\b
    

    但是,如果字母紧接序列之前或之后将不起作用。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看