Java正则表达式忽略/注释掉正则表达式的一部分[重复]

Posted

技术标签:

【中文标题】Java正则表达式忽略/注释掉正则表达式的一部分[重复]【英文标题】:Java Regex ignoring/commenting out part of regex [duplicate] 【发布时间】:2018-08-24 18:17:42 【问题描述】:

我已经搜索了很多关于如何忽略 RegEx 表达式的一部分。原因如下。

正则表达式示例:

".*atan2\\(.*\\).*"

它会像这样检测函数'atan2':

string.matches("return atan2(45, 23)")

但是当我引入另一个字符串时:

string.matches("return atan2("+Integer.valueOf(XInString)+", 58)")

如果 XInString 看起来像这样:45.7 正则表达式将受到那个点的影响,因为正则表达式看起来像那样:"return atan2(45.7, 58)" 并且 5 和 7 之间的点是正则表达式的一部分。有没有办法忽略那部分? 例如:

string.matches("return atan2([45.7], 58)")

([和]之间的字符串是我不希望正则表达式读取的)

【问题讨论】:

【参考方案1】:

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

是的,您可以像这样使用Pattern.quote(XInString) 转义该点:

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

【讨论】:

以上是关于Java正则表达式忽略/注释掉正则表达式的一部分[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何通过python忽略正则表达式中的html注释标签

如何使用正则表达式过滤掉 c 类型的注释? [复制]

(php) 正则表达式删除注释但忽略字符串中的出现

Python 松散正则表达式

Python 松散正则表达式

用java正则表达式提取java程序中的注释