Javascript 正则表达式-在第一个和第二个正斜杠之间去掉文本

Javascript 正则表达式-在第一个和第二个正斜杠之间去掉文本,javascript,regex,Javascript,Regex,我几乎让这个正则表达式正常工作了,但是我在前导正斜杠上遇到了问题——有人能看出我在这个问题上的错误吗?我只想从这个示例中提取第一个字符串“projects” /projects/personal/29/56 另请参见此处->最简单的方法是使用正斜杠拆分字符串 var firstString = url.split('/')[1]; 您将拥有第一个字符串,但如果您想使用regext进行提取,请记住不要在regex中添加全局参数 \/([a-zA-Z0-9]{0,}) 我希望这有帮助似乎您

我几乎让这个正则表达式正常工作了,但是我在前导正斜杠上遇到了问题——有人能看出我在这个问题上的错误吗?我只想从这个示例中提取第一个字符串“
projects

  /projects/personal/29/56

另请参见此处->

最简单的方法是使用正斜杠拆分字符串

var firstString = url.split('/')[1];
您将拥有第一个字符串,但如果您想使用regext进行提取,请记住不要在regex中添加全局参数

\/([a-zA-Z0-9]{0,})

我希望这有帮助

似乎您可以使用split获得测试,但对于纯正则表达式解决方案使用:

s = '/projects/personal/29/56';
arr = s.match(/^\/([^/]*)\//); // arr[1] becomes 'project'
document.writeln('<pre>Matched: [' + arr[1] + "]</pre>");
s='/projects/personal/29/56';
arr=s.match(/^\/([^/]*)\/);//arr[1]成为“项目”
document.writeln('Matched:['+arr[1]+“]);

我仔细研究了阿努巴瓦的答案,得到了以下结果

/projects/personal/29/56
第二行实现了bsod99的要求:

  • 删除第一个斜杠
    /
    ,然后
  • /projects/personal/29/56

    • 为前来寻找此类答案的人添加。除了url“/projects”的第一部分之外,您还可以尝试添加全局标志以获取其他值

      /\/([a-zA-Z0-9]{0,})/g[i]
      
      expression                       returns
      i=0                             /projects
      i=1                             /personal
      i=2                             /29
      i=3                             /56
      
      您只需遍历位于末尾的数组
      [i]


      我在这里添加答案,只是因为我想将其添加到,并且该问题被标记为此问题的dup(!!!当我编辑时!!!)

      script.py:

      #/usr/bin/env蟒蛇3
      进口稀土
      def main():
      group\u name=“斜杠之间”
      单词=[
      “en/柠檬皮/n/”,
      “ca/llimona/n/”,
      “/asd/”,
      “/asd”,
      “asdf/”,
      “aa//vv”,
      ]
      pat=re.compile(“^[^/]*/(?P[^/]*)/.*$”。格式(组名))
      对于idx,枚举中的单词(单词):
      匹配(单词)
      如果匹配项不是无:
      打印(“{}:\“{}\”-\“{}\”。格式(idx、word、match.group(group\u name)))
      其他:
      打印(“{}:\”{}\”。格式(idx,word))
      如果名称=“\uuuuu main\uuuuuuuu”:
      main()
      
      注释

      • 这个模式似乎很复杂,但我会尽力解释:
      • 第一个字符(^)标记字符串的开头
      • 以下[]匹配字符类:内容(^/)告诉它匹配任何字符,但/
      • 接下来,*告诉我们前一组(#2.)可以发生0次或更多次
      • 然后它跟随/字符,这是我们的第一个(开始)守卫
      • 括号()表示组匹配-稍后可以通过其名称(在斜杠之间)引用。有关更多详细信息,请检查(搜索
        (?P…)
      • 括号之间的内容(在之后)是我们正在寻找的内容(我们已经知道是什么):0个或更多非/字符
      • 下一个角色是我们的第二(末端)后卫
      • 然后,*告诉:任何字符,0次或更多次
      • 最后,$标记字符串的结尾
      • 除了问题中提供的字符串之外,我还随意添加了更多要搜索的字符串,以说明一些特殊情况
      • 使用Python 3和Python 2运行
      输出

      c:\Work\Dev\StackOverflow\q4598502>“c:\Install\x64\Python\Python\3.5\Python.exe”script.py
      0:“en/柠檬皮/n/”-“柠檬皮”
      1:“ca/llimona/n/”-“llimona”
      2:“/asd/”-“asd”
      3:“/asd”
      4:“asdf/”
      5:“aa//vv“-”
      

      在JS正则表达式中,您可以使用:

      \B\/([a-zA-Z0-9-]{0,})\S
      
      作为一种实践,请在此处发布完整的问题,而不是显示外部代码。
      ^\/(.+)\/.$
      和get group 1\/(\w+)将更简洁,但拆分方法可能更好
      /\/([a-zA-Z0-9]{0,})/g[i]
      
      expression                       returns
      i=0                             /projects
      i=1                             /personal
      i=2                             /29
      i=3                             /56