Regex用于标识Aadhaar编号

tmb3ates  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(87)

我一直面临着一些挑战,在编写正则表达式搜索Aadhaar数在DLP。
实际上,内置模式如下:

\b[2-9][0-9]{11}\b
\b[2-9][0-9]{3} [0-9]{4} [0-9]{4}\b

字符串
然而,上述模式工作正常,但它也给出了许多错误的情况下,通过垂直方式阅读数字。下面将被视为Aadhaar通过阅读它垂直,我不希望它发生。
例如:

2355(New Line)
2345(New Line)
7868


此外,我希望它限制搜索12位数字,如果数字是13或11,然后不算它。
我试过下面请建议如果它是罚款搜索整个文件,如果它有Aadhaar号码

^[2-9][0-9]{3}\s[0-9]{4}\s[0-9]{4}$

1cosmwyk

1cosmwyk1#

你的RegEx看起来不错。
但请记住,您的解决方案是用于多行搜索(^和$ match行的开始/结束)。
你可以在这个regex101 share link中进行实验。
此外,您可以查看此geeksforgeeks.org post以了解更多详细信息。
在阅读了下面的评论后,我修改了我的回答:

\b[2-9][0-9]{3}[^\S\r\n][0-9]{4}[^\S\r\n][0-9]{4}\b

字符串
我使用了Greg Bacon对matching whitespace but not newlines的答案,并将其与您的答案结合起来。检查更新的regex101 share link以进一步测试它。
祝你好运。

u0njafvf

u0njafvf2#

正则表达式- \B(\d{4}\s\d{4}\s\d{4})\b|\B(\d{12})\b|\B(\d{4}-\d{4}-\d{4})\b
正则表达式模式匹配以下格式:000000000000000 -0000 - 0000000000000000
这将对具有12位数的数字起作用。

相关问题