如何在/ blog之后包含所有内容,但不应包含wp-content和wp-includes等字词?
目前正在使用正则表达式显示所有内容:
^/blog/*
我试过这个但没有运气:
^/blog/(!(wp-content&&wp-includes))*
的url:
example.com/blog/content (should include)
example.com/blog/page/2 (should include)
example.com/blog/wp-content/ (shouldn't include)
example.com/blog/wp-includes/ (shouldn't include)
答案 0 :(得分:2)
你的第一个正则表达式
^/blog/*
表示一个字符串,以/blog
开头,后面有零或更多正斜杠。我猜你的意思只是
^/blog
或
^/blog/.*$
至于如何排除这两个词:
^/blog(.(?!wp-content|wp-includes))*$
我们的想法是一次推进一个字符(.
),然后使用negative lookahead ((?!)
)检查wp-content
或wp-includes
之后是否跟随$
字符串(blog
)。
如果你想在^/blog/(?!.*(wp-content|wp-includes)).*$
之后确保斜杠而不重复正则表达式,你可以先放下负向前瞻,然后开始匹配字符:
wp-content
这首先确保在任何字符(wp-includes
)之后没有.*
或{{1}},然后继续匹配。
答案 1 :(得分:0)
你可以使用这样的负向前瞻:
/blog(/(?!wp-content|wp-includes).*)
如果匹配的语义是"在网址"中,那么您很可能只想匹配非空白字符:
/blog(/(?!wp-content|wp-includes)\S*)
如果超过2" wp - "示例:
/blog(/(?!wp-)\S*)
..不使用^
,因为您的示例在字符串的开头不匹配