繁体   English   中英

从URL检索的正则表达式

[英]Regular expression to retrieve from the URL

/test-test-test/test.aspx

嗨,您好,

我很难从上述URL中检索出第一位。

测试测试

我试过了这个/[\\w+|-]/g但它也匹配了最后一个test.aspx。

请帮忙。

谢谢

一种实现方法是使用Dom解析器,如此处所述: https : //stackoverflow.com/a/13465791/970247 然后,您可以使用例如myURL.segments; // = Array = ['test-test-test', 'test.aspx']访问URL的段myURL.segments; // = Array = ['test-test-test', 'test.aspx'] myURL.segments; // = Array = ['test-test-test', 'test.aspx']

您需要使用肯定的前瞻性断言。 | 字符类中的字符将匹配文字| 符号。 它不会像交替运算符那样工作。 所以我建议您删除它。

[\w-]+(?=\/)

(?=\\/)称为正向超前断言,它断言匹配必须后面跟正斜杠。 在我们的例子中, test-test-test后面只有一个正斜杠,所以它匹配了。 [\\w-]+匹配一个或多个单词字符或连字符。 +重复上一个令牌一次或多次。

例:

> "/test-test-test/test.aspx".match(/[\w-]+(?=\/)/g)
[ 'test-test-test' ]
  • [\\w+|-]错误,应为[\\w-]+ “不是单词字符还是连字符的一系列字符”,而不是“单词字符,加号,竖线或连字符的单个字符”。
  • g标志表示全局匹配,因此自然会找到所有匹配,而不仅仅是第一个。 因此,您应该删除它。

     > '/test-test-test/test.aspx'.match(/[\\w-]+/) < ["test-test-test"] 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM