String str1 = "My hobby is playing \"Tennis\" I am good at it. I love it."
String str2 = "My hobby is playing \"Tennis\". I (Alex) am good at it. I(Alex) love it. "
我想检查 str1 是否与 str2 匹配,除了 Alex 部分。
注意 - Alex 是这里的一个变化部分。可能是汤姆、哈利等。
所以我尝试了:-
str2 = "My hobby is playing \"Tennis\". I (.*) am good at it. I(.*) love it. "
str1.matches(str2)
但它返回 false。
我在这里做错了什么?
它适用于:-
str2 = "My hobby is playing \"Tennis\". I (.*)
最佳答案
您的正则表达式将匹配“I”和“am”之间的两个空格,因此它不会匹配字符串
"My hobby is playing \"Tennis\" I am good at it. I love it."
因为那里只有一个空格。而且,你错过了“网球”之后的点。不过,请注意“.”。在正则表达式中具有特殊含义。所以你想转义正则表达式中的点
尝试:
"My hobby is playing \"Tennis\"\\. I (?:\\(.*\\) )?am good at it\\. I (?:\\(.*\\) )?love it\\."
以上内容将匹配两者:
My hobby is playing "Tennis". I am good at it. I love it.
My hobby is playing "Tennis". I (Alex) am good at it. I (Alex) love it.
关于java - 如何在java中的字符之间使用.matches来匹配包含.*的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20656039/