我已经搜索了一段时间如何在Java的正则表达式中使用逻辑运算AND,但失败了。
我尝试按照类似主题中的建议进行操作:
(?=match this expression)(?=match this too)(?=oh, and this)
但它不起作用。即使是带有 ?= 的简单示例也会返回 false:
String b = "aaadcd";
System.out.println(b.matches("(?=aa.*)"));
我也读过(expression X)(expression Y)
应该像X AND Y
,但它的工作原理就像X OR Y
.
我究竟做错了什么?
添加:
尝试添加.*
到底。还是不行啊
举个例子:
[2-9]?[0-9]{5,9}||1[2-9][0-9]{1,2}||120[0-9]{1,1}||119[0-9]
= X - 如果数字小于 1190,则返回 false
[0-9]{1,3}||1[0-0][0-9]{1,2}||11[0-8][0-9]{1,1}||119[0-2]
= Y - 如果数字大于 1992,则返回 false。
String a = "1189";
a.matches(X) // return false
a.mathes(Y) // return true
a.matches((?=X)(?=Y).*) // return true, but should return false.
添加:
是的,我的正则表达式不正确。我的错。问题解决了。非常感谢大家!