javascript regexp以匹配路径深度

时间:2015-06-09 11:37:41

标签: javascript regex

在最后一小时努力尝试让这个正则表达式工作但似乎无法破解它。

它必须是正则表达式,我不能使用split等,因为它是更大的正则表达式的一部分,它使用.test()搜索许多其他字符串。

(public\/css.*[!\/]?)

public/css/somefile.css
public/css/somepath/somefile.css
public/css/somepath/anotherpath/somefile.css

这里我试图寻找以public / css开头的路径,后跟除了另一个正斜杠之外的任何字符。

so" public / css / somefile.css"应该匹配,但另外2个不应该。

更好的解决方案可能是以某种方式使用类似

之类的内容指定匹配后的级别数
(public\/css\/{1,2}.*) 

但我似乎无法解决这个问题,对此有所帮助。

修改

不知道为什么这个问题被标记了两次,我已经明确说明了样本代码和测试用例的要求,并试图解决问题,为什么要将其标记下来?

2 个答案:

答案 0 :(得分:2)

您可以使用此regex

/^(public\/css\/[^\/]*?)$/gm
  1. ^:以
  2. 开头
  3. [^/]:不是/
  4. *?:任意字符
  5. $:结尾
  6. g:全球旗帜
  7. m:多行标记

答案 1 :(得分:1)

这样的东西?

/public\/css\/[^\/]+$/

这将匹配 public / css / [除了/] $

之外的任何字符

$匹配正则表达式中字符串的结尾。