在編寫調查問卷的過程中,遇到一個分割字符串的小問題。 網頁的名稱為"Browse_"+調查編號+"_"+頁碼.html 現在為了獲得調查編號,和頁碼有很多中方式。例如,可以使用string的Split。 此處使用正則表達式 分析:需要的數據其實是在兩個下劃線和點號之間,故編寫正則表達式:_\d{1,}_\d{1}\. _\d{1,}_\d{1}\.含義: _:表示匹配下劃線 \d{1,}:表示匹配一個或者多個數字 \.:表示匹配一個點號,由於點號有特殊含義,故使用轉移字符斜槓。 整體的含義就是,先匹配一個下劃線,再匹配一個或者多個數字,再匹配下劃線,再匹配一個或者多個數字最後匹配一個點號 最後給匹配到數據命名,把第一處匹配到的\d{1,}命名為surveyID,把第二處匹配到的\d{1,}命名為pageIndex,則正則表達為變為_(?<surveyID>\d{1,})_(?<pageIndex>\d{1})\. 測試代碼:
public static bool GetPageIndexSurveyID(string url, ref int surveyID, ref int pageIndex) { Regex reg = new Regex(@"_(?<surveyID>\d{1,})_(?<pageIndex>\d{1})\."); if (reg.IsMatch(url)) { Match m = reg.Match(url); surveyID = int.Parse(m.Groups["surveyID"].Value); pageIndex = int.Parse(m.Groups["pageIndex"].Value); } return true; }