想要匹配出 A ,同时不匹配出 B , B 是 A 的子集
想要匹配出 A ,同时不匹配出 B , B 是 A 的子集
|
iEverXMar 16, 2016
1
不明白,可以给个例子出来看看
|
|
2
@iEverX 简单的例子:我想通过.*google.*匹配出所有包含 google 的字符串,同时不能匹配出 dl.google.com ,语法上如何做到
|
|
czheoMar 16, 2016
3
|
|
ming2281Mar 16, 2016
4
[A^B]
|
|
czheoMar 16, 2016
7
(?=^((?!dl\.google\.com).)*$)(?=^.*google.*$)
|
|
8
@ming2281 匹配 DNS 请求,除了个别特定的网址(例如 dl.google.com )其他所有包含 google 字眼的网址
|
|
9
^(?=(?!dl\.google\.com)).*google.*$
|
|
imn1Mar 16, 2016
12
这问题有歧义,除非 A 含有通配符,否则直接把 A 写完整就行了
|
|
ming2281Mar 16, 2016
14
(?=[^dl]+
\.google\.com ) |
|
ming2281Mar 16, 2016
15
(?=[^dl]+).+\.google\.com
|
|
KisesyMar 16, 2016
16
非要写在一条正则上?这样根本不好维护,加黑名单最简单
|
|
ming2281Mar 16, 2016
17
完善下
^(?=(?!dl\.google\.com)).+?\.google\.(com|cn|jp|hk)$ |
|
ming2281Mar 16, 2016
18
我才发现正则没有 AND 功能(C#好象有此功能,私有拓展)
用环视做出来,好蹩脚 |
|
21
|
|
Ge4LosMar 16, 2016
22
这个如何,用 ?<! 来实现
.*(?<!dl)\.google\..* |
|
23
@Ge4Los 更简洁,只是 google.com 匹配不了
|
|
25
|