Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C#匹配组中单词前的所有空格(如果有)?_C#_Regex - Fatal编程技术网

如何使用C#匹配组中单词前的所有空格(如果有)?

如何使用C#匹配组中单词前的所有空格(如果有)?,c#,regex,C#,Regex,我想匹配单词前的所有空格(如果有) Regex re = new Regex(@"(\d+);([\d\.]+);([\d\.]+);([\w-\(\)\.,\/]+);(\d+);(\d+);([\d,]+);(\d+)", RegexOptions.Compiled); 上述正则表达式适用于示例1,但不适用于示例2。 例如,我需要在哪里更改regex-2 Example-1: 44;52.93; 8.24;GROSSENKNETEN;201902;28;408.7;28;509.86 71

我想匹配单词前的所有空格(如果有)

Regex re = new Regex(@"(\d+);([\d\.]+);([\d\.]+);([\w-\(\)\.,\/]+);(\d+);(\d+);([\d,]+);(\d+)", RegexOptions.Compiled);
上述正则表达式适用于示例1,但不适用于示例2。 例如,我需要在哪里更改regex-2

Example-1:
44;52.93; 8.24;GROSSENKNETEN;201902;28;408.7;28;509.86
71;48.22; 8.98;ALBSTADT-BADKAP;201902;28;475.3;28;-999.9
73;48.62;13.05;ALDERSBACH-KRIESTORF;201902;28;519.8;28;561.76

如果您可以正常访问完整的C#功能,只需逐行读取文件并使用
拆分即可
以获取所有字段

如果您使用的是基于.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+字,
    -
    //code>字符
  • \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字符和行尾。

为什么不将您的输入拆分为
?@AleksAndreev在我的上下文中,我不能拆分,只需要匹配。好吧,如果你坚持,请尝试
@(?m^(\d+);\s*([\d.]+);\s*([\d.]+);\s*([\w-(),\/]+);\s*(\d+);\s*([\d.]+)\s*)\s*(\d*);\s*(\d;\s*(-[+])\d+)\r$”(?m)^(\d+);\s*([\d.]+);\s*([\d.]+);\s*([\w-().,\/]+);\s*(\d+);\s*(\d+);\s*([\d.]+);\s*(\d+);\s*([-+]?\d*\.?\d+)\r?$