我想匹配單詞之前的所有空格(如果有)。Regex re = new Regex(@"(\d+);([\d\.]+);([\d\.]+);([\w-\(\)\.,\/]+);(\d+);(\d+);([\d,]+);(\d+)", RegexOptions.Compiled);上述正則表達式適用于示例 1,但不適用于示例 2。我需要在哪里更改示例 2 的正則表達式?Example-1:44;52.93; 8.24;GROSSENKNETEN;201902;28;408.7;28;509.8671;48.22; 8.98;ALBSTADT-BADKAP;201902;28;475.3;28;-999.973;48.62;13.05;ALDERSBACH-KRIESTORF;201902;28;519.8;28;561.76Example-2:00044;52.93; 8.24; GROSSENKNETEN;201907;31; 53.4;9; 28.600071;48.22; 8.98; ALBSTADT-BADKAP;201907;31; 49.0;8;-999.900073;48.62;13.05; ALDERSBACH-KRIESTORF;201907;31; 0.0;0; 15.7
1 回答

長風秋雁
TA貢獻1757條經驗 獲得超7個贊
如果您可以正常訪問完整的 C# 功能,只需逐行讀取文件并使用 split;
即可獲取所有字段。
如果您使用基于 .NET 正則表達式的工具并且需要從文本行中提取特定數據,您可以使用
(?m)^(\d+);\s*([\d.]+);\s*([\d.]+);\s*([\w-().,\/]+);\s*(\d+);\s*(\d+);\s*([\d.]+);\s*(\d+);\s*([-+]?\d*\.?\d+)\r?$
請參閱正則表達式演示
在多行模式下,$
.NET 正則表達式在 CR 之前不匹配,這就是為什么有\r?
.
圖案細節
(?m)
- 多行模式開啟^
- 一行的開頭(\d+)
- 第 1 組:一位或多位數字;
- 一個分號\s*
- 0+ 空格([\d.]+)
- 第 2 組:1+ 數字或點;\s*([\d.]+);\s*
-;
, 0+ 空格,第 3 組:1+ 數字/點,;
, 0+ 空格([\w-().,/]+)
-第4組:1+個單詞-
、、、、、、、、字符(
)
.
,
/
;\s*(\d+);\s*(\d+);\s*
-;
, 0+ 空格, 第 5 組: 1+ 數字,;
, 0+ 空格, 第 6 組: 1+ 數字,;
, 0+ 空格([\d.]+)
- 第 7 組:1+ 位數/點;\s*(\d+)
-;
,0+ 空格,第 8 組:1+ 數字;\s*
-;
和 0+ 空格([-+]?\d*\.?\d+)
- 第 9 組:-
或+
可選,然后 0+ 位數字,可選.
,1+ 位數字\r?$
- 可選的 CR 字符和行尾。
- 1 回答
- 0 關注
- 136 瀏覽
添加回答
舉報
0/150
提交
取消