首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正则表达式停止捕获重复的标签

正则表达式停止捕获重复的标签
EN

Stack Overflow用户
提问于 2020-09-28 01:56:43
回答 1查看 42关注 0票数 1

我在捕获基于标签(多个单词)阅读前后的SSN时遇到了问题。此字段为自由文本,用户可以以任何格式输入SSN。在下面的输入中,我有两种不同的格式XXX-XXX-XXX和XX-XXXXXXX。

输入字符串:

代码语言:javascript
运行
复制
Hi i'm John my SSN is 111-111-111, then my wife 222-222-222 might be SocialNumber and my daughter SSN :: 12.3456789 and son SSN will be 33-4444444 

标签: SSN,SocialNumber

RegeX:

代码语言:javascript
运行
复制
    String pattern = "(SSN|SocialNumber)([^\\d]*)(\\d{3}[.-]\\d{3}[.-]\\d{3})|"
                    +"(\\d{3}[.-]\\d{3}[.-]\\d{3})([^\\d]*)(SSN|SocialNumber) | " 
                    +"(SSN|SocialNumber)[^\\d]*(\\d{2}[.-]\\d{6})|"
                    + "(\\d{2}[.-]\\d{6})([^\\d]*(SSN|SocialNumber))";

代码输出:

代码语言:javascript
运行
复制
SSN is 111-111-111
222-222-222 might be SocialNumber and my daughter SSN 
 SSN will be 33-444444

如果您看到上面的输出,它会根据标签( SSN |SocialNumber)正确地捕获John、他的妻子和儿子SSN,但缺少女儿SSN。请协助

预期输出:

代码语言:javascript
运行
复制
SSN is 111-111-111
222-222-222 might be SocialNumber
SSN :: 12.3456789
SSN will be 33-4444444
EN

回答 1

Stack Overflow用户

发布于 2020-09-28 02:02:32

尝试下面的正则表达式:

代码语言:javascript
运行
复制
SSN is | is SocialNumber|\d{3}-\d{3}-\d{3}|\d{2}-\d{7}|\d{2}\.\d{7}

我基本上取了2个字符串:

  • SSN is 3格式:ddd-ddd-ddddd-ddddddddd.ddddddd

测试here

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

https://stackoverflow.com/questions/64091609

复制
相关文章

相似问题

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