using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"((?<=\[)\w+)(?#匹配宏名称)|(\w+(?=\=))(?#匹配参数名称)|((?<=\=)\d+)(?#匹配int参数)|((?<=\=)\[\d+,\d+\])(?#匹配长度为2的int数组)|((?<=\=)\[\d+,\d+,\d+,\d+])(?#匹配长度为4的int数组)|(\""[a-zA-Z\._0-9\s]+\"")(?#匹配使用双引号的string参数)|(\'[a-zA-Z\._0-9\s]+\')(?#匹配使用单引号的string参数)";
string input = @"//完整代码匹配测试
[sprite file=""1.png"" index=2 rect=[20,20,800,600] pos=[800,600]][sprite file='2.png' index=2 rect=[0,0,0,0]] //这是注释 abcd
//宏名称单元测试
[bg]
[bg]
[ bg]
//字符串参数值单元测试
=""abc""
=""ABC""
=""_abcABC""
=""_abcABC.png""
=""_abcABC special.png""
//参数名单元测试
[bg index=2]
[bg index=2]
[bg index =2]
//int参数值单元测试
[bg index=54687]
[bg index=1 index2=26764]
//pos_t 4位长度的int数组测试
[bg index=0 pos=[1,2,3,4]]
//匹配坐标型 pos_t指长度为2的整数型数组,分别为横坐标x、纵坐标y
[bg index=0 pos=[0,2]
//匹配注释";
RegexOptions options = RegexOptions.Multiline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx