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