[问题] 找第一个</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