我有这样结构的文本文件:
Some data
====================================================================
1 !V09 ! -0.544 V ! -0.900- -0.250 V ! gd
2 !Vk10 ! -0.582 V ! -0.900- -0.250 V ! gd
3 !V11 ! -0.591 V ! -0.900- -0.250 V ! gd
4 !V12 ! -0.544 V ! -0.900- -0.250 V ! gd
Some data
====================================================================
1 !V09 ! -0.544 V ! -0.900- -0.250 V ! gd
2 !Vk10 ! -0.582 V ! -0.900- -0.250 V ! gd
...
如何从所有表中获取内容?每个正则表达式匹配一张表。
的更新
总之,我需要匹配中的这些数据:
1 !V09 ! -0.544 V ! -0.900- -0.250 V ! gd
2 !Vk10 ! -0.582 V ! -0.900- -0.250 V ! gd
3 !V11 ! -0.591 V ! -0.900- -0.250 V ! gd
4 !V12 ! -0.544 V ! -0.900- -0.250 V ! gd
1 !V09 ! -0.544 V ! -0.900- -0.250 V ! gd
2 !Vk10 ! -0.582 V ! -0.900- -0.250 V ! gd
...
答案 0 :(得分:1)
看起来像固定宽度的列。如果您的数据中没有任何空格,请使用String.Split()
拆分空格。如果有空格,请使用String.Substring()
拉出子字符串,并使用String.RTrim()
修剪空格。
请不要在这里使用正则表达式。那太过分了。
答案 1 :(得分:0)
如果您没有固定字段并且split接受正则表达式分隔符,则可以将其写为:
delimeter regex = /^\s*\d\s*!|!/
修改:/^\s*\d\s*!|[! ]+/
会像这样分开
'' 'V09' '-0.544' 'V' '-0.900-' '-0.250' 'V' 'gd'
第一个字段(数组项)是丢弃的地方。
如果修复了,你可以写一个非常详细的正则表达式:
(基于样本线)
1!V09! -0.544 V! -0.900- -0.250 V! gd
/^\s*\d+\s*!\s*(\S*)\s*!\s*(\S*)\s*(\S*)\s*!\s*(\S*)\s*(\S*)\s*(\S*)\s*!\s*(\S*)\s*$/