java - 正则表达式排除特定子域 (Java)

标签 java regex

我想从正则表达式中排除特定的子域。 我搜索并尝试了不同的正则表达式。但对我来说不起作用。

正常的正则表达式如下所示:

https?:\/\/((localhost(\:\d+)?)|([a-z\-\.]*\.)?(gaga.ch|gugus.ch))

为了排除 gugus.ch 中名称为 admin 的子域,我添加了:(^(?!.*admin).*) 所以整个正则表达式看起来像:

https?:\/\/((localhost(\:\d+)?)|([a-z\-\.]*\.)?(gaga.ch|(^(?!.*admin).*)gugus.ch))

所以它应该让通过http://www.gugus.ch 但不是http://admin.gugus.ch

这不起作用。我做错了什么?

谢谢迈克

最佳答案

尝试这个正则表达式:

https?://((localhost(:\d+)?)|([a-z.-]*\.)?(gaga\.ch|(?<!\badmin\.)gugus\.ch)

(?<!\badmin\.)如果 gugus.ch 则为负向回顾,导致匹配失败前面是 admin.

关于java - 正则表达式排除特定子域 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30889133/

相关文章:

java - 需要带引号的字符串(位置 :DOCDECL @1:50 in java. io.StringReader@4327b040) - Android

python - 使用正则表达式在文本文件中间隔单词

python - 正则表达式的有序/优先返回

ruby - 如何使用 Ruby 从字符串中删除除数字 ","和 "."之外的所有字符?

java - ActionBarSherlock - 整个项目中一致的选项卡 - 有没有一种简单的方法可以做到这一点?

java - Apache Ignite 以编程方式销毁持久缓存

java - EditText 按需小部件

regex - 使用 ColdFusion 替换所有重读元音

python - 网站抓取价格为零的问题

Java 8 通过签名推断方法引用解析,这是否损坏?