C# 正则表达式将字符串与空格匹配,直到第一个“0”=&引用;

C# 正则表达式将字符串与空格匹配,直到第一个“0”=&引用;,c#,regex,string,C#,Regex,String,我有一个字符串,看起来像: abC d eFg=hiJk lmNop …我想匹配从开始到“=”的所有字符: abcdefg 我试图通过以下方式实现这一目标: string str=“abC d eFg=hiJk lmNop”; Regex.Match(str,@“^.*?(?==)”).ToString() 但是,此正则表达式仅返回最后一个单词,即“eFg”这是一种模式: ^[^=]* 您还可以按“=”进行拆分,并获取第一个拆分的值。这是模式: ^[^=]* 您还可以按“=”进行拆分,

我有一个字符串,看起来像:

abC d eFg=hiJk lmNop
…我想匹配从开始到
“=”
的所有字符:

abcdefg
我试图通过以下方式实现这一目标:

string str=“abC d eFg=hiJk lmNop”;
Regex.Match(str,@“^.*?(?==)”).ToString()

但是,此正则表达式仅返回最后一个单词,即
“eFg”

这是一种模式:

^[^=]*

您还可以按
“=”
进行拆分,并获取第一个拆分的值。

这是模式:

^[^=]*

您还可以按
“=”
进行拆分,并获取第一个拆分的值。

一个相当简单的做法是使用非正则表达式

string test = "abC d eFg=hiJk lmNop";
string current = test.Split('=')[0];
这将返回在
=
处拆分的字符串数组

  • 索引0是
    abC d eFg
  • 索引1为hiJk lmNop
使用LINQ,您还可以使用
FirstOrDefault()
获取第一个值,这可能比拆分后的
[0]
索引可读性稍高一些

string current=test.Split('=').FirstOrDefault();

一个相当简单的实践是使用非正则表达式

string test = "abC d eFg=hiJk lmNop";
string current = test.Split('=')[0];
这将返回在
=
处拆分的字符串数组

  • 索引0是
    abC d eFg
  • 索引1为hiJk lmNop
使用LINQ,您还可以使用
FirstOrDefault()
获取第一个值,这可能比拆分后的
[0]
索引可读性稍高一些

string current=test.Split('=').FirstOrDefault();

你为什么不在
=
的时候分手呢?杀伤力太大了。。。只需使用mystring.Split('=').First();谢谢,但是我需要正则表达式。为什么你特别需要正则表达式呢?因为我正在解析包含长而复杂文本的文件,我注意到我在空格上有一个小问题。你为什么不在
=
处拆分呢?太过分了。。。只需使用mystring.Split('=').First();谢谢,但是我需要正则表达式。为什么你特别需要正则表达式呢?因为我正在解析长而复杂的文本文件,我注意到我的空格有一个小问题。如果你用另一个
^
作为该模式的前缀,那么你就不必“进行第一次匹配”-它将只与字符串的开头匹配。@Damien_the_unsiever-我编辑过,这是正确的。谢谢。简短而甜美,有两种Yona选择,很好。:)+1如果用另一个
^
作为该模式的前缀,则不必“进行第一次匹配”-它将只与字符串的开头匹配。@Damien_,不信者-我已编辑,这是正确的。谢谢。简短而甜美,有两种Yona选择,很好。:)+如果不匹配,则1
FirstOrDefault()
将优于
First
FirstOrDefault()
将优于
First