Java 不允许在字符串正则表达式中使用SSN和电话号码

Java 不允许在字符串正则表达式中使用SSN和电话号码,java,regex,Java,Regex,可能重复: 上面的regex不允许字符串中包含SSN和电话号码。但它也不允许\n(输入字符)。如果用户通过按enter键输入两行文本,则此正则表达式将失败。默认情况下,句点()与换行符不匹配。如果不能配置 doase>/COD>模式,请考虑使用 [\s\s] *(任意数量的字符或不是空白),而不是 *>代码> < /p>如果用户输入文本新行,然后输入123-123-123。即使123-123-123格式无效,此内容仍被验证为正确。@user679526您是否修复了*的每一个外观,而不仅仅是最后

可能重复:


上面的
regex
不允许字符串中包含SSN和电话号码。但它也不允许
\n
(输入字符)。如果用户通过按enter键输入两行文本,则此
正则表达式将失败。

默认情况下,句点(
)与换行符不匹配。如果不能配置<代码> doase>/COD>模式,请考虑使用<代码> [\s\s] *<代码>(任意数量的字符或不是空白),而不是<代码> *>代码> < /p>如果用户输入文本新行,然后输入123-123-123。即使123-123-123格式无效,此内容仍被验证为正确。@user679526您是否修复了
*
的每一个外观,而不仅仅是最后一个外观?你复杂的否定性断言意味着你的替代者必须非常冗长。或者,寻找一种方式说“如果你发现这个正则表达式,字符串是无效的”,这可能会更简单,更容易维护。我需要一个答案,所以我重新提出了这个问题。错的是你在重复你的“问题”。Stack Exchange社区强烈反对故意复制内容。编辑你的第一个问题,使之成为一个连贯的问题,它可能会被重新打开。哦,顺便说一句,删除你自己的问题也会触发一个问题禁令。
^(?!.*(\\d{16})|.*(\\d{9})|.*(\\d{3}-\\d{2}-\\d{4})|.*(\\d{3}-\\d{3}-\\d{3})).*