java - 为什么 Java 正则表达式 ".*[two].*"匹配 "[one]"?

标签 java regex string

当两个值在 [] 括号中时,为什么 String.matches 返回 true

System.out.println("[one]".matches("(?i).*" + "[two]" + ".*"));
   //Why does it return true? Shouldn't "[]" be treated as value?
System.out.println("one".matches("(?i).*" + "two" + ".*"));//OK - prints false

System.out.println("[one]".equals("[two]"));//OK - prints false
System.out.println("one".equals("two"));//OK - prints false

最佳答案

因为 [two] 匹配字符串 "[one]" 中的字母 t、w 或 o 之一

关于java - 为什么 Java 正则表达式 ".*[two].*"匹配 "[one]"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7431632/

相关文章:

java - Android 模拟器,查找模拟用户位置坐标。有问题

java - 当用户输入负值时如何退出程序 - Java

php - 双重扩展将绕过扩展检查规则

python - 查找字符串中所有可能的子字符串。 Python 正则表达式

java - 我没有使用 angularjs 将数据获取到我的 Restful Web 服务

java - 当同一程序在 JVM5 和 JVM6 中运行时,HashMap 中的项目顺序不同

regex - 每个 Referer 的 Apache 条件 header

python pandas将数据框列拆分为两个新列并删除原始列

string - Bash,连接 2 个字符串以引用第三个变量

android - 在android中将字符串转换为标题大小写