定期exp找到一些特殊的模式

时间:2012-03-19 08:11:00

标签: regex

我需要找到网址池中的所有网址

假设网址池包含

/a/a.html
/b/z.html  
/e/s-v.html  
/z2/s_v.html   
/b/d/s_v.html  
/b/e/s_v.html

我需要找出

/a/a.html
/b/z.html
/e/s-v.html
/z2/s_v.html

任何常规模式都可以做到这一点? (我的网址池实际上有不同的网址,因此不要使用|来执行此操作)

5 个答案:

答案 0 :(得分:2)

此模式将与所有模式匹配:

 ^\/[abe]|z2\/[-a-z_]*\.html$

答案 1 :(得分:1)

这会过滤掉所有包含两个/个字符的网址:

/^(?:\/[^\/]*){2}$/

修改

仅匹配/ a /,/ b /,/ e /& / Z2 /:

/^\/(?:a|b|e|z2)\/.*\.html$/

答案 2 :(得分:1)

这是我最好的(使用Linux标准grep): ^ /([阿部] \ | Z2)。/ [A-ZA-Z0-9 _-] + HTML $ 它满足您的要求(第一个子文件夹正好是a,b,e或z2),只要在second /和html之间只有字母,数字和_, -

答案 3 :(得分:0)

^([/][a-zA-Z0-9]*/[_-a-zA-Z0-9]*.html)

匹配的条件是:

  • 第一个字母是斜杠/
  • 第一个块是字母数字
  • 第二个块可以包含 - 和_
  • 以.html结尾

答案 4 :(得分:-2)

实际上我找到了另一种方法

/ + [A-ZA-Z0-9] + /([\ W] | [_] | | [。] [ - ])。+ HTML

匹配

/a/a.html

/a/a-a.html,/a/a-a-a.html

/a/a_a.html,/a/a_a_a.html

/a/a.a.html,/a/a.a.a.html