看板 RegExp 關於我們 聯絡資訊
String ss=" <TR><TH scope="row" valign="top" align="left" width="10%" nowrap>Appl. No.: </TH><TD align="left" width="90%"> <b> 08/940,685</b></TD></TR> <TR><TH scope="row" valign="top" align="left" width="10%">Filed: </TH><TD align="left" width="90%"> <b>September 30, 1997</b></TD></TR> </TABLE> ... " 我希望得到的是"940,685",從"Appl. No"開始 由於中間有換行 我用 str = "" + new Regex(@"Appl. No.:[^*]*?\/(.*)?(</b>)", RegexOptions.IgnoreCase).Match(ss).Groups[1]; 去搜尋,從測試網站 http://regexstorm.net/tester 來看應該是正確的。 不過用C#實際輸出:console.writeline(str); 會變成整個ss字串一起出來..,如果改成groups[2] 又能正常輸出</b>的結果出來 求解.. 語言:C# 環境:visual studio 2017 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.168.220 ※ 文章網址: https://www.ptt.cc/bbs/RegExp/M.1516591026.A.6A4.html ※ 編輯: alpho (36.231.168.220), 01/22/2018 11:17:48 ※ 編輯: alpho (36.231.168.220), 01/22/2018 11:18:10
art1: 看不懂你真正想要的是什麼,到底是只要<\b>之前的數字就好 01/22 19:25
art1: 還是連前面的Appl. No.: <TH>....<b> 08/ 都要 01/22 19:26
art1: 如果只要數字就好,(<\b>)的()要去掉 01/22 19:30
art1: 然後我在你給的網站測試,貼上你的資料跟規則,找不到東西 01/22 19:31
art1: 把規則改成 Appl..\nNo.:[^*]*?\/(.*)?</b> 才是你要的結果 01/22 19:33
thx 求的就是那個數字 然後大概是被換行了,appl那不換行的話我的規則是可行的。 後面的(\b)只是另加個group來做測試 一樣用程式去讀然後輸出 結果g2是正常的這樣 就是group1會有問題 ※ 編輯: alpho (36.231.168.220), 01/22/2018 20:53:05
art1: 我看書上是寫 Groups[0] 後面加上.value取得捕捉到的文字 01/22 22:31
art1: Groups[0]是比對成功的文字,Groups[1]才是捕捉分組的內容 01/22 22:32
soem: 隨手試了一下,沒辦法重現你的問題…… 02/09 01:50
soem: https://dotnetfiddle.net/oE3Xpi 02/09 01:50