我已经搜索了很多关于如何忽略RegEx表达式的部分内容。这就是原因。
RegEx示例:
[
{"$match":{"Questions.Label":{"$in":["fname", "lname"]}},
{"$project":{
"Questions":{
"$filter":{
"input":"$Questions",
"as":"q",
"cond":{"$in":["$$q.Label",["fname","lname"]]}
}
},
"SignatureCount":{"$size":"$Signatures"}
}}
]
它将检测函数'atan2',如下所示:
".*atan2\\(.*\\).*"
但是当我带来另一个字符串时:
string.matches("return atan2(45, 23)")
如果XInString看起来像这样:string.matches("return atan2("+Integer.valueOf(XInString)+", 58)")
正则表达式会受到该点的影响,因为正则表达式看起来就像那样:45.7
而5到7之间的点是正则表达式的一部分。有没有办法忽略那部分?
例如:
"return atan2(45.7, 58)"
([和]之间的字符串是我不想要正则表达式读取的内容)
答案 0 :(得分:1)
... 5到7之间的点是正则表达式的一部分。有办法吗? 忽略那部分?
是的,您可以使用Pattern.quote(XInString)
来逃避该点:
"return atan2(" + Pattern.quote(XInString) + ", 58)"