当前位置: 首页 > 编程语言 > C#

正则表达式获取“ – ”之前的所有字符分享

时间:2023-04-10 22:55:50 C#

C#学习教程:正则表达式获取“-”前所有字符例如,我有“text-1”,我想返回“text”。所以我看到了很多实现这一目标的可能性。stringtext="Foobar-test";1)正则表达式匹配第一个“-”之前的所有内容Matchresult=Regex.Match(text,@"^.*?(?=-)");2)Regex表达式从字符串开头匹配任何不是“-”的内容Matchresult2=Regex.Match(text,@"^[^-]*");2)1)正则表达式从字符串的开头匹配任何不是“-”的东西,直到“-”Matchresult21=Regex.Match(text,@"^([^-]*)-");3)split"-"string[]result3=text.Split('-');4)直到第一个“-”字符串的子串result4=text.Substring(0,text.IndexOf("-"));然后你得到所有的结果(都一样)Console.WriteLine(result);控制台.WriteLine(result2);Console.WriteLine(result21.Groups[1]);控制台.WriteLine(result3[0]);控制台.WriteLine(result4);我更喜欢第一种方法。您还需要考虑字符串中没有破折号时的行为。在这种情况下,第四个方法将抛出异常,因为text.IndexOf("-")将为-1。方法1和2.1将不返回任何内容,方法2和3将返回完整的字符串。我不认为你需要正则表达式来实现这一点。我将查看SubString方法和indexOf方法。如果您需要更多帮助,请添加评论以显示您尝试过的内容,我会提供更多帮助。这是我的建议-它非常简单:[^-]*这类似于您需要的正则表达式:([^-]*)-JavaScript中的快速测试:/([^-]*)-/。exec('text-1')[1]//'text'/([^-]*)-/.exec('foo-bar-1')[1]//'foo'/([^-]*)-/.exec('-1')[1]//''/([^-]*)-/.exec('quux')[1]//explodes你可以使用另一种方法基于非正则表达式方法。有人给出了使用Substring的建议,但是你也可以使用Split:stringtestString="my-string";字符串[]splitString=testString.Split("-");字符串resultingString=splitString[0];//my请参阅http://msdn.microsoft.com/en-US/library/ms228388%28v=VS.80%29.aspx以获得另一个很好的示例。如果你想在.NET中使用RegEx,以上就是C#学习教程:正则表达式获取“-”前所有字符的全部内容分享,如果对大家有用,需要详细了解C#学习教程,希望大家多多关注—Regexrx=newRegex(@"^([w]+)(-)*");varmatch=rx.Match("thisis-thefirst");vartext=match.Groups[1].Value;Assert.AreEqual("这是",文本);本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: