我在捕获基于标签(多个单词)阅读前后的SSN时遇到了问题。此字段为自由文本,用户可以以任何格式输入SSN。在下面的输入中,我有两种不同的格式XXX-XXX-XXX和XX-XXXXXXX。
输入字符串:
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:
    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))";代码输出:
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。请协助
预期输出:
SSN is 111-111-111
222-222-222 might be SocialNumber
SSN :: 12.3456789
SSN will be 33-4444444发布于 2020-09-28 02:02:32
尝试下面的正则表达式:
SSN is | is SocialNumber|\d{3}-\d{3}-\d{3}|\d{2}-\d{7}|\d{2}\.\d{7}我基本上取了2个字符串:
SSN is 3格式:ddd-ddd-ddd或dd-ddddddd或dd.ddddddd测试here。
https://stackoverflow.com/questions/64091609
复制相似问题