Java 忽略某些模式检查字符串是否相等

Java 忽略某些模式检查字符串是否相等,java,regex,string,Java,Regex,String,我有两个90%相等的字符串,但我想忽略它们不相等的10%。比如说 String s1 = "Hi my name is Bob. About me: Useless information. I am a male." String s2 = "Hi my name is Bob. About me: Different useless information. I am a male." 即使这两个字符串是不同的,我希望有一种方法来比较字符串并返回true,即它们相等。解决这个问题的最佳方

我有两个90%相等的字符串,但我想忽略它们不相等的10%。比如说

String s1 = "Hi my name is Bob. About me: Useless information. I am a male."

String s2 = "Hi my name is Bob. About me: Different useless information. I am a male."

即使这两个字符串是不同的,我希望有一种方法来比较字符串并返回true,即它们相等。解决这个问题的最佳方法是什么。有没有已经存在的字符串实用程序可以帮助我实现这个效果?

java中有一个名为

它计算两个不同字符串之间的相似性百分比

希望这有帮助。=)


通过
java.util.regex.Pattern
java.util.regex.Matcher
类使用正则表达式,您可以在正则表达式中创建组来选择需要匹配的详细信息

例如,您的正则表达式可能看起来像:
“嗨,我的名字是\(.*)\。关于我:\(.*)\。我是\(.*)\。”
。然后,您可以使用
Matcher.group(int)
方法,在两个字符串之间比较组中的值,假设两个字符串首先匹配正则表达式


我的正则表达式示例可能并不完美,但希望您能理解

看,我不认为这是对提出的问题的重复,因为这不是关于字符串有多相似,而是假设两个字符串符合某种约定,两个字符串的关键组件是否匹配。我认为你非常接近一个答案。我怎么能用正则表达式忽略关于我的部分呢?我只需要一个函数,它可以输入两个字符串,如果它们相等,则不管它在关于我的部分中说了什么。假设字符串的形式非常严格,就不要比较关于我的部分。组由括号定义。因此,如果您验证两个匹配项都匹配正则表达式,那么从两个匹配项中检索组1,然后检索组3。如果每个组的值匹配,那么您已经匹配了您想要的值。谢谢,我遵循了您的建议,并且成功了。我看到我的答案暂时被投了赞成票,然后被投了反对票。那个人能告诉我为什么我的答案不值得吗?