正则表达式匹配一个字符串与空格,直到第一个"="

Yon*_*ona 1 c# regex string

我有一个看起来像这样的字符串:

abC d eFg=hiJk lmNop
Run Code Online (Sandbox Code Playgroud)

...我希望从头到尾匹配所有角色"=":

abC d eFg
Run Code Online (Sandbox Code Playgroud)

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

string str = "abC d eFg=hiJk lmNop";
Regex.Match(str, @"^.*?(?==)").ToString()
Run Code Online (Sandbox Code Playgroud)

但是,这个正则表达式只返回最后一个单词"eFg".

Ami*_*ich 7

这是模式:

^[^=]*
Run Code Online (Sandbox Code Playgroud)

您也可以拆分"="并获取第一个拆分值.


Mat*_*ijs 6

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

string test = "abC d eFg=hiJk lmNop";
string current = test.Split('=')[0];
Run Code Online (Sandbox Code Playgroud)

这将返回分割的字符串数组=.

  • 索引0是 abC d eFg
  • 指数1是 hiJk lmNop

使用LINQ,您还可以使用FirstOrDefault()获取第一个值,这可能更具可读性,而不是[0]分割后的索引.

string current = test.Split('=').FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)