我是非常新的正则表达式,无法让我的头完全缠绕它。如何从字符串中提取以逗号分隔的数字
我想写两个正则表达式的 - 你需要告诉我,如果他们甚至可能。两者都基于VB.net语法。
正则表达式1: 字符串我测试反对 - 在磁盘上 大小:25754900936个字节
它拥有领先的空间屈指可数,但文本始终是相同的。我试图提取出这个数字(25,754,900,936)。
我试过一些正则表达式,但是我不能在一行上得到所有东西。这些逗号会让我搞砸,并返回多个匹配项(例如,\ d + \ W +会给我四个匹配项,每一组数字都用逗号分隔)
我做的最好的是[0-9/,] *,但是这给了我25个空的比赛和一个比赛(在比赛19)的数字。我需要这匹配匹配1.
可以吗?看到一个正则表达式,我可以从字符串中提取这样的数字,这真的很有帮助。
正则表达式2:
相同的想法,但现在是多行。
我测试对字符串 -
0 File(s) 0 bytes
1 File(s) 11,546 bytes
1 File(s) 259,584 bytes
3 File(s) 5,682 bytes
17218 File(s) 25,705,262,230 bytes
我只需要在最后一行(25705262230)的总字节数。是否有可能在多行搜索中做到这一点?相同的交易 - 文字总是相同的。
James - 两个都确实有效,但我实际上并没有在.net中使用它 - 我使用的是可以执行regex的第三方应用程序。不幸的是,它只能用于第一个捕获,第一组。在第二个正则表达式中的任何方式来获得它的位置?现在它仍然有第一组的字节字第一次捕捉,但否则它是完美的。 – Pat
@Pat啊我没有看到任何担忧。你需要添加一个积极的向前看,这样字符串的末尾(你不希望捕获的'字节')将不会被包含。我已经修改了上面的第二个正则表达式。让我知道如果这是有效的 - 我简单地通过使用'regex.Match([你的字符串])提取匹配的值(不带'字节')。值# –
完美 - 谢谢! – Pat