我收到的网址如下:http://blog.test.com/post/2017/1/testpost-blog-January
我想制作一个Regex模式,该模式匹配带有 no 扩展名且带有 post 字样的网址。
[实施例]
http://blog.test.com/post/2017/1/testpost-blog-January
- >匹配
http://blog.test.com/post/2017/1/testpost-blog-January.aspx
- >没有比赛
http://blog.test.com/Testpage.aspx
- >没有比赛
到目前为止我尝试过:
(?=.*^([^.]+)$)(?=.*post)
这不管怎么样。
你知道如何正确地重写我的模式吗?
Thx:)
答案 0 :(得分:1)
您需要修复这样的前瞻:
^(?=.*post)(?!.*\.[^\/.]+$).*
请参阅regex demo(在演示中,\n
被添加到否定字符类,因为它是一个多行演示。)
<强>详情:
^
- 字符串开头(?=.*post)
- 一个积极的前瞻,要求字符串在任何0+字符之后有一个post
字面字符序列(?!.*\.[^\/.]+$)
- 如果在任何0+字符之后有一个点后跟1 {+ 1}}和/
以外的一个字符,那么将会导致匹配失败的负向前瞻串.
- 获得整行的匹配模式。