我现在有这个:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
static void Main(string[] args)
{
Console.WriteLine("Which teams have played? right vs inbetween the two teams");
Match m = Regex.Match("^(?<team1>\.+) vs (?<team2>\.+)$", userInput);
if (m.Success)
{
string team1 = m.Groups["team1"].Value;
string team2 = m.Groups["team2"].Value;
}
Console.WriteLine("What is the score? ");
Match m = Regex.Match("^(?<score1>\.+)/(?<score2>\.+)$", userInput);
if (m.Success)
{
int score1 = m.Groups ["score1"].Value;
int score2 = m.Groups ["score2"].Value;
}
我在点上的错误说:
“无法识别的转义序列
^(?<team1>\.+)
”
它也会在score1
和score2
行上告诉我:
“找不到类型或命名空间名称
Match
(您是否缺少using指令或essembly引用?)”
和
“在当前语境中,”正则表达式“这个名称并不令人兴奋。”
我要做的是从一行读两个答案并将其作为两个答案阅读。
例如:BlueTeam vs RedTeam。
也想为得分做同样的事情。例如:1/1我知道斜线有点奇怪,但我只是出于纯粹的懒惰而想到别的东西。
稍后在路径上我想将其分配到xy表中。像这样:http://pastebin.com/ahgP04bU
答案 0 :(得分:4)
通过将变量放在{ ... }
中,您将使用这些变量创建单独的块范围。它们不存在于该范围之外。
不要那样做。
Regex
类位于System.Text.RegularExpressions
命名空间中;您需要使用using
语句包含该命名空间。
答案 1 :(得分:2)
您还必须包含
using System.Text.RegularExpressions
为了在没有完全合格的情况下使用正则表达式。
编辑:还有很多可以改善您的代码。当您在if
块中定义变量时,那些变量将在本地作用于if块,并在if块完成后立即进行垃圾收集。
另外,我没有看到代码中任何地方都定义了userInput。
答案 2 :(得分:0)
{ }
)。using System.Text.RegularExpressions
与其他人一起使用。userInput
不存在,您需要声明它:var userInput = string.Empty;
\
),则可以使用@
:@"\myString"