Java Regex忽略/评论部分正则表达式

时间:2018-03-15 19:37:20

标签: java regex string

我已经搜索了很多关于如何忽略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)"

([和]之间的字符串是我不想要正则表达式读取的内容)

1 个答案:

答案 0 :(得分:1)

  

... 5到7之间的点是正则表达式的一部分。有办法吗?   忽略那部分?

是的,您可以使用Pattern.quote(XInString)来逃避该点:

"return atan2(" + Pattern.quote(XInString) + ", 58)"