[問題] 找第一個</b>前的數字

作者: alpho (Whyyyyy)   2018-01-22 11:17:01
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
作者: soem (流水)   2018-02-09 01:50:00
隨手試了一下,沒辦法重現你的問題……https://dotnetfiddle.net/oE3Xpi
作者: art1 (人,原來不是人)   2018-01-22 19:25:00
看不懂你真正想要的是什麼,到底是只要<\b>之前的數字就好還是連前面的Appl. No.: <TH>....<b> 08/ 都要如果只要數字就好,(<\b>)的()要去掉然後我在你給的網站測試,貼上你的資料跟規則,找不到東西把規則改成 Appl..\nNo.:[^*]*?\/(.*)?</b> 才是你要的結果我看書上是寫 Groups[0] 後面加上.value取得捕捉到的文字Groups[0]是比對成功的文字,Groups[1]才是捕捉分組的內容

Links booklink

Contact Us: admin [ a t ] ucptt.com