作者alpho (阿否)
看板RegExp
标题[问题] 找第一个</b>前的数字
时间Mon Jan 22 11:17:01 2018
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://webptt.com/cn.aspx?n=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
1F:推 art1: 看不懂你真正想要的是什麽,到底是只要<\b>之前的数字就好 01/22 19:25
2F:→ art1: 还是连前面的Appl. No.: <TH>....<b> 08/ 都要 01/22 19:26
3F:推 art1: 如果只要数字就好,(<\b>)的()要去掉 01/22 19:30
4F:→ art1: 然後我在你给的网站测试,贴上你的资料跟规则,找不到东西 01/22 19:31
5F:→ 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
6F:推 art1: 我看书上是写 Groups[0] 後面加上.value取得捕捉到的文字 01/22 22:31
7F:→ art1: Groups[0]是比对成功的文字,Groups[1]才是捕捉分组的内容 01/22 22:32
8F:推 soem: 随手试了一下,没办法重现你的问题…… 02/09 01:50