我正在C#中編寫一個應用程序,用於解析一些文本文件並從中獲取信息。我需要解析下面的表格數據,並將信息填充到類的屬性中。用正則表達式解析表格數據
我對錶格和列標題沒有問題。我也可以用捕捉組得到的數據,但在某些情況下,某些值可能爲空(或者可能包含空格,如在第四數據線,COL6)
樣品:
===============================================================================
Table Header
===============================================================================
Col1 Col2 Col3 Col4 Col5 Col6
-------------------------------------------------------------------------------
21 abc xyz xyz 1 blablabla
22 abc xyz 1 bla-bla-bla
103 abc xyz xyz 1
4000 abc xyz xyz 1 blabla bla
4001 abc xyz xyz 1
我有數據線這樣的模式:
([\w\d\-_\.\*\#\:\\/\<\>]+)\s+([\w\d\-_\.\*\#\:\\/\<\>]+)\s+([\w\d\-_\.\*\#\:\\/\<\>]+)\s+([\w\d\-_\.\*\#\:\\/\<\>]+)\s+([\w\d\-_\.\*\#\:\\/\<\>]+)\s+([\w\d\-_\.\*\#\:\\/\<\>]+)?$
它正常工作時,所有列包含數據。當我在最後一個捕獲組(對於Col6)的字符類中添加一個空白字符時,它開始將兩個連續的行匹配在一起。我需要逐行匹配。我怎樣才能做到這一點?第二個問題是,對於許多列,我需要「任何字符但空間」的方法,我在捕獲組中使用此模式:([\ w \ d -_。*#:\/\ <>] +)
如果數據可能包含空格,我將爲此模式添加一個空白字符。這是正確的方法嗎?或者在這樣的文本中出現問題(例如列不匹配)?
謝謝
兩列之間是否存在修復長度或是否有tab分隔? –