我的正则表达式中有两个条件。 说,
(.*text.*)
--->这将检查输入字符串中是否包含子字符串“text”。(^((?!query).)*$)
---->这将检查输入字符串是否包含单词“query”int it。两者对我来说都很好。
但我希望使用正则表达式来检查这些条件,例如AND
运算符。
我想要一个正则表达式,只有当输入字符串包含子字符串“text”并且其中不包含“query”时才应该返回true。
我得到了正则表达式不支持AND
运算符的信息。
所以,我尝试做类似以下的事情:
NOT(NOT(expression 1)|(NOT(expression 2)))
例如: - (!(.*query.*)|(^((?!text).)*$))
但即使这对我也不起作用..
任何人都可以帮我解决这个问题。
答案 0 :(得分:2)
使用非消费性正则表达式。
典型的表示法是:
(?=expr)
这意味着匹配expr ,但之后在原始匹配点继续匹配。
您可以根据需要执行其中任意多项操作,这将是" 和"。
语法例如:
(?=match this expression)(?=match this too)(?=oh, and this)
<强>更新: - 强>
需要添加.*
incase matches()
,以便正则表达式匹配整个字符串。
您的正则表达式为str.matches("(?=(.*text.*))(?=(^((?!query).)*$)).*")