簡體   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