我需要这是一个正则表达式,因为它在Google Search Appliance的“不抓取”列表中。 (我相信Google正则表达式与GNU正则表达式类似。)所以我也没有选择使用代码(用任何语言)。正则表达式:只匹配字符串A和字符串B不匹配
这个问题以前已经问过,但答案通常是代码而不是正则表达式。
我想要做的是匹配一个字符串,如果它包含子字符串aaa只有如果它不包含子字符串bbb。
作为一个更具体的例子:如果一个字符串包含“/ RFA /”,但只有它不包含“Google = yes”,我想匹配。
因此:“blahblah/RFA/index.cfm?Review = 1 & blahblah”应该匹配。
但:“blahblah/RFA/index.cfm?Review = 1 & Google = yes & blahblah”应该失败。
顺便说一句,如果它简化了任何事情,当它存在时,bbb子字符串将始终位于aaa子字符串之后。
你只需要负前瞻和回顾后,在两边的字符串中的任何点搜索“BBB”。 – Neil
@Neil我不确定基本GNU正则表达式支持向前看和向后看。 – xanatos
那么这是不可能的。前瞻性和逆向思维能够在周围环境中捕捉价值。另一种方法是捕获整个表达式,除非捕获组被允许。 – Neil