簡體   English   中英

使用[\\ w。] +代替。+的JavaScript中的正則表達式

[英]Regular expressions in JavaScript using [\w.]+ instead of.+

在David Flanagan的JavaScript the Definite Guide 6th edition中,有一個使用正則表達式的例子:

例如,考慮使用以下代碼解析URL:

var url = /(\w+):\/\/([\w.]+)\/(\S*)/;
var text = "Visit my blog at http://www.example.com/~david";

var result = text.match(url);
if (result != null) 
{
    var fullurl = result[0];   // Contains "http://www.example.com/~david"  
    var protocol = result[1];  // Contains "http"    
    var host = result[2];      // Contains "www.example.com"
    var path = result[3];      // Contains "~david" 
}

我想知道為什么在第二個帶括號的表達式中他使用[\\w.]+而不僅僅是.+

有可能被投票,我會說David Flanagan在他的正則表達中實際上有一個拼寫錯誤。 正如@nnnnnn在評論中提到的那樣. 點元字符包括 \\w ,因此字符類[\\w.]+(.)+沒有區別。 還要注意的是(\\w)+ 不足以捕捉URL的域名,因為它包含時間,這\\w 匹配。 所以,我相信David打算使用以下正則表達式:

var url = /(\w+):\/\/(.+)\/(\S*)/;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM