java - 匹配模式和计算相等性之间的区别

标签 java regex groovy

在正则表达式(Groovy)中,“== ~”运算符与运算符类似 “==”,但匹配模式而不是“计算相等” 您能否通过一个小例子帮助我理解这两者之间的实际区别?

最佳答案

x==yx.equals(y)x.compareTo(y) 的缩写 - 请参阅 Groovy Operator Overloading (在java中这基本上是比较对象身份)。

运算符==~是专门设计的比较运算符,可帮助您对字符串上的模式进行完全匹配。

为操作符生成的代码(例如 disasm 代码 'xxx' ==~/xx?/)是:

ScriptBytecodeAdapter.matchRegex("xxx", "xx?")

来自Groovy Regular Espressions :

Since a Matcher coerces to a boolean by calling its find method, the =~ operator is consistent with the simple use of Perl's =~ operator, when it appears as a predicate (in 'if', 'while', etc.). The "stricter-looking" ==~ operator requires an exact match of the whole subject string. It returns a Boolean, not a Matcher.

关于java - 匹配模式和计算相等性之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27146943/

相关文章:

Java:LD_LIBRARY_PATH可以访问类路径吗?

java - 从 java 程序运行 shell 脚本时权限被拒绝

javascript - 正则表达式验证器 - 如何包含某些特殊字符

Groovy 排序文档

java - 部署 Grails 应用程序时出错 - 初学者

java - NetBeans(Java Swing ): Set window size

Java 8 流合并内部流结果到上面的流

python - 使用正则表达式搜索 tkinter 文本小部件内容

regex - Vim 正则表达式不匹配字符类中的空格

jenkins - 尝试使用选项列表填充Jenkins参数,但该参数保持为空,这可能是什么原因?