Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将带引号和不带引号的字符串与正则表达式匹配_C#_Regex_.net 4.0 - Fatal编程技术网

C# 将带引号和不带引号的字符串与正则表达式匹配

C# 将带引号和不带引号的字符串与正则表达式匹配,c#,regex,.net-4.0,C#,Regex,.net 4.0,嘿,大家好,我知道有很多问题需要与正则表达式匹配,但我尝试的几个问题还没有让我走得更远。。。我想这只是一个新加入Regex的例子 基本上,我正在解析一个unix grep命令字符串,需要提取所有grep的内容。例如: cat theLogFile | grep "some stuff" | grep moreStuffWithRandomChars*&^^#&@_+ | grep "stuff" | grep thing2 我希望结果是: "some stuff" moreSt

嘿,大家好,我知道有很多问题需要与正则表达式匹配,但我尝试的几个问题还没有让我走得更远。。。我想这只是一个新加入Regex的例子

基本上,我正在解析一个unix grep命令字符串,需要提取所有grep的内容。例如:

cat theLogFile | grep "some stuff" | grep moreStuffWithRandomChars*&^^#&@_+ | grep "stuff" | grep thing2
我希望结果是:

"some stuff"
moreStuffWithRandomChars*&^^#&@_+
"stuff"
thing2

谢谢大家

我不知道这是否满足了您的所有需求,但这里有一个指针:您可以像这样拆分字符串:

Regex.Split(string, "| grep ")

然后扔掉第一部分。

我不知道这是否满足了您的所有需求,但这里有一个指针:您可以像这样拆分字符串:

Regex.Split(string, "| grep ")

然后扔掉第一部分。

此模式返回以下结果作为第一组

字符串regexpatern=@“grep(.*)(\| |$)”

“一些东西”

更多随机字符*&^^#&@_+

“东西”

事情2

下面是一个如何使用它的示例:

try 
{
    Regex regex = new Regex(@"grep (.*?)( \||$)");
    Match grepStrings = regex.Match(commandline);
    while (grepStrings.Success) 
    {
        // matched text: grepStrings.Value
        // match start: grepStrings.Index
        // match length: grepStrings.Length
        grepStrings = grepStrings.NextMatch();
    } 
} 
catch (ArgumentException ex)
{
    // Syntax error in the regular expression
}

此模式将以下结果作为第一组返回

字符串regexpatern=@“grep(.*)(\| |$)”

“一些东西”

更多随机字符*&^^#&@_+

“东西”

事情2

下面是一个如何使用它的示例:

try 
{
    Regex regex = new Regex(@"grep (.*?)( \||$)");
    Match grepStrings = regex.Match(commandline);
    while (grepStrings.Success) 
    {
        // matched text: grepStrings.Value
        // match start: grepStrings.Index
        // match length: grepStrings.Length
        grepStrings = grepStrings.NextMatch();
    } 
} 
catch (ArgumentException ex)
{
    // Syntax error in the regular expression
}

你需要使用正则表达式吗?为什么不这样做呢

var cmdStr = @"cat theLogFile | grep ""some stuff"" | grep moreStuffWithRandomChars*&^^#&@_+ | grep ""stuff"" | grep thing2";
var results = cmdStr.Split('|')
                    .Select(s => s.Trim())
                    .Where(s => s.StartsWith("grep ", StringComparison.OrdinalIgnoreCase))
                    .Select(s=> s.Substring(5))
                    .ToList();
// { "some stuff", moreStuffWithRandomChars*&^^#&@_+, "stuff", thing2 }

你需要使用正则表达式吗?为什么不这样做呢

var cmdStr = @"cat theLogFile | grep ""some stuff"" | grep moreStuffWithRandomChars*&^^#&@_+ | grep ""stuff"" | grep thing2";
var results = cmdStr.Split('|')
                    .Select(s => s.Trim())
                    .Where(s => s.StartsWith("grep ", StringComparison.OrdinalIgnoreCase))
                    .Select(s=> s.Substring(5))
                    .ToList();
// { "some stuff", moreStuffWithRandomChars*&^^#&@_+, "stuff", thing2 }

也许我做错了什么,但这是:List greps=newlist(Regex.Split(sender.ToString(),“| \\s+grep\\s+”);生成的grep包含输入字符串的每个字符、空格和all@Hershizer33“每个字符”和“空格和所有字符”是什么意思?顺便说一下,在C#4.0中,您可以只编写:
var greps=Regex.Split(sender.ToString(),@“|\s+grep\s+”就像我的输入字符串是“cat file | grep”stuff”
,列表包含23个项目,项目1是“c”,2是“a”,3是“t”等等。也许我做错了什么,但这是:list greps=new list(Regex.Split(sender.ToString(),“|\\s+grep\\s+”);生成的grep包含输入字符串的每个字符、空格和all@Hershizer33“每个字符”和“空格和所有字符”是什么意思?顺便说一下,在C#4.0中,您可以只编写:
var greps=Regex.Split(sender.ToString(),@“|\s+grep\s+”就像我的输入字符串是
“cat file | grep”stuff”“
,列表包含23个项目,项目1是“c”,2是“a”,3是“t”等等。谢谢大家的建议!谢谢大家的建议!非常感谢您的回答,但是如果您有时间,您是否介意解释一下Regex语句的含义?我想说的是,我不需要问那么多正则表达式问题,哈哈。(仅仅是正则表达式模式,我可以与火柴和其他东西混在一起)@Hershizer33这里有一张解释正则表达式的图片,非常感谢你的回答,但是如果你有时间,你介意解释一下正则表达式语句的读法吗?我想说的是,我不需要问那么多正则表达式问题,哈哈。(只是正则表达式的模式,我可以和火柴之类的东西混在一起)@Hershizer33这里有一张解释正则表达式的图片