我想问一个关于正则表达式的简单问题:
如何只比较字符串的开头?
例如:Car [200; 200; 200],Bike [20]
if (item.Name == "Car*") { textBox.Text = "Car"; }
我不知道我必须输入什么而不是“*”才能使字符串的其余部分无关紧要。
答案 0 :(得分:7)
我认为没有理由在这里使用Regex
。你可以使用String.StartsWith
if(item.Name.StartsWith("Car")) { textBox.Text = "Car"; }
答案 1 :(得分:4)
您可以使用string.StartsWith
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”; }