假设我有这样的字符串:
default-src http:// adobe.com:234 http:// omntsd.org:8790 ; frame-ancestors 'self' http:// dhimana.com:8690 http:// nishkala.com:8080 ; script-src http:// google.com:80 http:// jquery.com:80
frame-ancestors 'self' http:// dhimana.com:8690 http:// nishkala.com:8080 ; script-src http:// google.com:80 http:// jquery.com:80
default-src http:// adobe.com:234 http:// omntsd.org:8790 ; frame-ancestors 'self' http:// dhimana.com:8690 http:// nishkala.com:8080
default-src http:// adobe.com:234 http:// omntsd.org:8790 ; frame-ancestors 'self' http:// dhimana.com:8690 http:// nishkala.com:8080 ;
现在,正则表达式(在Java中)将开始时匹配模式框架 - 祖先部分与半冒号(;
)。
意味着我想匹配:
"; frame-ancestors 'self' http:// dhimana.com:8690 http:// nishkala.com:8080 "
表示第一个,第三个和第四个字符串AND "frame-ancestors 'self' http:// dhimana.com:8690 http:// nishkala.com:8080 "
表示第二个字符串。
使用;[ ]*frame-ancestors[^;]*
正则表达式,我可以匹配第一,第三和第四。但不是第二个。