[英]What would be the Regex to match a word wrapped in double brackets
我试图找到正确的正则表达式语法,用于匹配和拆分由双括号包围的单词。
const string originalString = "I love to [[verb]] while I [[verb]].";
我试过了
var arrayOfStrings = Regex.Split(originalString,@"\[\[(.+)\]\]");
但它无法正常工作。 我不知道我做错了什么
我希望arrayOfStrings像这样出来
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);
}
能够产生你想要的答案的答案是@"(?=\\[\\[.*?\\]\\])|(?<=\\]\\])"
。
它有两个部分,由|
分隔 “或”符号。
(?=\\[\\[.*?\\]\\])
将查找紧跟着[[
some characters,and a ]]
任何符号,并在它和[
。之间进行拆分。
(?<=\\]\\])
将寻找其立即被前面任何符号]]
和刚分割后]
。
这些被称为“lookahead”和“lookbehind”,你可以在这里找到它们的更多变体。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.