Match mc = Regex.Match("asdf[asdf]adsf", @"\[(?<val>.*?)\]"); if (mc.Success) { Console.WriteLine(mc.Groups["val"].Value); }
string regexExpression = @"(?<=(货品\[))[\w\W]+?(?=\]的单价)");
这个正则的意思,匹配以"货品["开头,并且以"]的单价"结尾的数据.匹配到的结果不包括"货品["和"]的单价".
public static string GetTextInTag(string strInput, string startTag, string endTag) { string expression = @"(?<=(" + @startTag + @"))[\w\W]+?(?=" + @endTag + ")"; Regex regMatch = new Regex(expression, RegexOptions.Singleline); Match mth = regMatch.Match(strInput); return mth.Value.ToString(); }
哪有那么麻烦,直接对应你的字符串写就OK了
货品[[].*[]]的单价小于成本价[!]单据是 否保存[?]
匹配的又正确,而且匹配时的速度更快,正则越详细,匹配时速度越快。