java - 正则表达式匹配一个词而不是另一个词

标签 java regex

我需要一个匹配以 http://www.xyzabc.com 开头的字符串的正则表达式,但该字符串不应包含单词“getJobId”。

例如:

http://www.xyzabc.com/abc          <--- should return true 
http://www.xyzabc.com/getJobId=9   <--- should return false

我尝试使用以下正则表达式:

^(http://www\.xyzabc\.com)((?!getJobId).)*$

但是没有用。谁能推荐一下?

最佳答案

我刚刚获取了您的代码并运行了它(删除了多余的括号和 anchor ):

final String regex = "http://www\\.xyzabc\\.com((?!getJobId).)*";
System.out.println("http://www.xyzabc.com".matches(regex));
System.out.println("http://www.xyzabc.com/abc".matches(regex));
System.out.println("http://www.xyzabc.com/getJobId=9".matches(regex));

打印

true
true
false

看起来正是您想要的,不是吗?

更新

在您编辑的答案中,您有单反斜杠而不是双反斜杠。

关于java - 正则表达式匹配一个词而不是另一个词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13413372/

相关文章:

javascript - 正则表达式匹配字符串中除数据值属性之外的所有属性

java - 成功登录后,Spring Boot 应用程序重定向到 http URL

java - 'for' 循环的范围

java - 为什么我的程序不能删除它在Win7下创建的文件?

javascript - 正则表达式检查最后一个字符是否为连字符 (-),如果不是则添加它

r - 如何将逗号分隔的字符串剥离为唯一的子字符串

java - 如何一次将记录转发到多个 Kafka Stream 子处理器?

Java Runtime.getRuntime().exec() 替代品

python - 使用正则表达式对字符串进行多重分割

Java 正则表达式和美元符号