我必须屏蔽所有网址*.company.com
,但可以访问proxy.company.com
。我怎么能用正则表达式做到这一点?
[^proxy].company.com
不起作用,我不知道为什么。
感谢。
答案 0 :(得分:0)
试试这个:
^(?:(?!proxy)[a-z0-9-\.]+)\.company\.com
您的[^proxy]
是一个字符集,匹配任何不在该组中的字符。 http://www.regular-expressions.info/charclass.html
答案 1 :(得分:0)
您可以使用Negative Lookahead
尝试^(?!proxy)[^.]+\.company\.com$
Java示例:
String regex = "^(?!proxy)[^.]+\\.company\\.com$";
System.out.println("abc.company.com".matches(regex)); // true
System.out.println("xyz.company.com".matches(regex)); // true
System.out.println("proxy.company.com".matches(regex)); // false
正则表达式解释:
^ the beginning of the string
(?! look ahead to see if there is not:
proxy 'proxy'
) end of look-ahead
[^.]+ any character except: '.' (1 or more times
(matching the most amount possible))
\. '.'
company 'company'
\. '.'
com 'com'
$ before an optional \n, and the end of the string