Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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 - Fatal编程技术网

C# 什么是正则表达式来匹配双括号中的单词

C# 什么是正则表达式来匹配双括号中的单词,c#,regex,C#,Regex,我试图找到正确的正则表达式语法来匹配和拆分一个被双括号包围的单词 const string originalString = "I love to [[verb]] while I [[verb]]."; 我试过了 var arrayOfStrings = Regex.Split(originalString,@"\[\[(.+)\]\]"); 但它并没有正常工作。我不知道我做错了什么 我希望数组字符串能像这样出来 arrayOfStrings[0] = "I love to " array

我试图找到正确的正则表达式语法来匹配和拆分一个被双括号包围的单词

const string originalString = "I love to [[verb]] while I [[verb]].";
我试过了

var arrayOfStrings = Regex.Split(originalString,@"\[\[(.+)\]\]");
但它并没有正常工作。我不知道我做错了什么

我希望数组字符串能像这样出来

arrayOfStrings[0] = "I love to "
arrayOfStrings[1] = "[[verb]]"
arrayOfStrings[2] = " while I "
arrayOfStrings[3] = "[[verb]]"
arrayOfStrings[4] = "."

我想这就是你需要的

string input = "I love to [[verb]] while I [[verb]].";
string pattern = @"(\[\[.+?\]\])";

string[] matches = Regex.Split( input, pattern );

foreach (string match in matches)
{
    Console.WriteLine(match);
}

答案是
@”(?=\[\[\[.*?\]\]),它将产生您想要的结果|(?这将删除括号内的单词,这不是用户想要的。Cyborgx37,括号将不会被删除。它将返回Laurence Burke要求的内容。你是对的。我的错误-显然我误解了Regex.Split函数。不幸的是,当我尝试删除我的否决票时,我收到一条错误消息。+1代表一个wor国王解决方案。顺便说一句,如果你编辑你的答案,@Cyborgx37将能够删除他的否决票。+1啊哈-从未知道这一点:非常有趣-通过将模式括在括号中,匹配的文本将包含在结果中。+1尽管我认为在这种情况下使用的更相关的名称是“零宽度断言”“@Cyborgx37-我以前从未听说过这个词。很高兴知道有一个官方术语来形容它!