提取大括号内的数值
我想从给定文件中提取一些字符串数据。文件的结构如下:
name, catg, {y:2006, v:1000, c:100, vt:1}, {y:2007, v:1000, c:100, vt:1},。 {..}..
。
我想提取下一个值:
- 名称;
- 猫;
y
、v
、c
、vt
标签后的数字;
我使用了下一个正则表达式:
@"(?
来提取前两项;\w+), (? \w+)" @"(?:\{y:(?
用于提取大括号中的其他值。\d+), +v:(? \d+), +c:(? \d+), +vt :(? \d+)\}, ?)+"
我将这两者连接起来并在正则表达式测试器中进行了测试。但正如预期的那样,我只得到一组提取的数字。我需要另一部分的结果({y:2007, v:1000, c:100, vt:1}
)。此外,可以有两个以上的部分。
如何修复我的正则表达式?然后我如何从相应的部分收集所有数字集。
I want to extract some string data from a given file. File got structure such as:
name, catg, {y:2006, v:1000, c:100, vt:1}, {y:2007, v:1000, c:100, vt:1},.. {..}..
.
I want to extract next values:
- name;
- catg;
- numbers after
y
,v
,c
,vt
labels;
I used the next regexes:
@"(?<name>\w+), (?<cat>\w+)"
for extraction of the first two items;@"(?:\{y:(?<y>\d+), +v:(?<v>\d+), +c:(?<c>\d+), +vt:(?<vt>\d+)\}, ?)+"
for extraction of other values enclosed in curly brackets.
I concatenated those two and made a test in regex tester. But as expected I get only one set of extracted numbers. And I need result from the other part ({y:2007, v:1000, c:100, vt:1}
). Moreover there could be more than two parts.
How do I fix my regex? And then how do I collect all number sets from corresponding parts.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是固定的正则表达式(您需要指定 IgnorePatternWhitespace 选项):
这是用法:
Here's fixed regex (you need to specify IgnorePatternWhitespace option):
And here's usage: