C#正则表达式,字符串的开头

时间:2014-02-26 17:01:48

标签: c# regex string

我想问一个关于正则表达式的简单问题:

如何只比较字符串的开头?

例如:Car [200; 200; 200],Bike [20]

if (item.Name == "Car*") { textBox.Text = "Car"; }

我不知道我必须输入什么而不是“*”才能使字符串的其余部分无关紧要。

7 个答案:

答案 0 :(得分:7)

我认为没有理由在这里使用Regex。你可以使用String.StartsWith

if(item.Name.StartsWith("Car")) { textBox.Text = "Car"; }

答案 1 :(得分:4)

您可以使用string.StartsWith

代替REGEX
if(item.Name.StartsWith("Car"))

如果您想要不区分大小写的比较,那么您可以这样做:

if(item.Name.StartsWith("car",StringComparison.InvariantCultureIgnoreCase))

答案 2 :(得分:0)

不需要正则表达式。 String类上有一个很好的方法叫做StartsWith(字符串参数) MSDN: http://msdn.microsoft.com/pl-pl/library/system.string.startswith(v=vs.110).aspx

像这样使用:

string MyString = "Car [ 200 ; 200 ; 200 ], Bike [20]"
if(MyString.StartsWith("Car")) Do what you whant

答案 3 :(得分:0)

虽然我建议使用其他人建议的String.StartsWith,但我相信您正在寻找的正则表达式是:

^[cC]ar

假设不区分大小写

答案 4 :(得分:0)

如果您仍想使用正则表达式:

if (Regex.IsMatch(item.Name, "^Car")) {
    //Something to do
}

或不区分大小写:

if (Regex.IsMatch(item.Name, "^Car", RegexOptions.CultureInvariant)) {
    //Something to do
}

或直接分配到文本框:

Match m = Regex.Match(item.Name, "^(Car)(.*)");
if (m.Success)
    textBox.Text = m.Groups[1].Value;

答案 5 :(得分:0)

如果您想使用正则表达式,那么您需要(?i:^car.*)

  • (?i::打开案例忽略其他人的其余部分。
  • ^:匹配字符串的开头。
  • car:查找字符串“car”
  • .*:匹配任何其他内容,任意数量的字符。
  • ):结束小组

您还可以删除组内容并在regex对象本身上使用ignore case选项。

答案 6 :(得分:0)

当然你应该使用String.StartWith()函数如果使用正则表达式,它会搞乱你的代码。我的意思是我需要更多的时间。

你可以这样。

if(item.Name.startsWith(“Car”)){textBox.Text =“Car”; }