使用正则表达式抽取字符串中数据的样例
2008-12-31 10:56
399 查看
private Regex regex = new Regex("(?<VarName1>[^//s]+)=/"(?<VarName2>[^/"]+)/"", RegexOptions.Compiled);
private RegistryPermission[] GetPermission(string permissionList)
{
string[] substring = permissionList.Split('|');
ArrayList al = new ArrayList();
for (int i = 0; i < substring.Length; i++)
{
MatchCollection matches = regex.Matches(substring[i]);
string user = null;
foreach(Match match in matches)
{
switch(match.Groups["VarName1"].Value.ToUpper())
{
case "USER":
if(user != null)
user += @"/" + match.Groups["VarName2"].Value;
else
user = match.Groups["VarName2"].Value;
break;
case "DOMAIN":
user = match.Groups["VarName2"].Value;
break;
default:
RegistryPermission permission = new RegistryPermission();
permission.type = match.Groups["VarName2"].Value.ToUpper() == "YES" ? AccessControlType.Allow : AccessControlType.Deny;
permission.user = user;
switch (match.Groups["VarName1"].Value.ToUpper())
{
case "CREATESUBKEYS":
permission.rights = RegistryRights.CreateSubKey;
break;
case "ENUMERATESUBKEYS":
permission.rights = RegistryRights.EnumerateSubKeys;
break;
case "NOTIFY":
permission.rights = RegistryRights.Notify;
break;
case "CREATELINK":
permission.rights = RegistryRights.CreateLink;
break;
case "DELETE":
permission.rights = RegistryRights.Delete;
break;
case "READPERMISSION":
permission.rights = RegistryRights.ReadPermissions;
break;
case "CHANGEPERMISSION":
permission.rights = RegistryRights.ChangePermissions;
break;
case "TAKEOWNERSHIP":
permission.rights = RegistryRights.TakeOwnership;
break;
case "GENERICALL":
permission.rights = RegistryRights.FullControl;
break;
default:
new Exception("Unknown registry type;" + match.Groups["VarName1"].Value);
break;
}
al.Add(permission);
break;
}
}
}
return base.ConvertArrayListToObjArray<RegistryPermission>(al); ;
}
private RegistryPermission[] GetPermission(string permissionList)
{
string[] substring = permissionList.Split('|');
ArrayList al = new ArrayList();
for (int i = 0; i < substring.Length; i++)
{
MatchCollection matches = regex.Matches(substring[i]);
string user = null;
foreach(Match match in matches)
{
switch(match.Groups["VarName1"].Value.ToUpper())
{
case "USER":
if(user != null)
user += @"/" + match.Groups["VarName2"].Value;
else
user = match.Groups["VarName2"].Value;
break;
case "DOMAIN":
user = match.Groups["VarName2"].Value;
break;
default:
RegistryPermission permission = new RegistryPermission();
permission.type = match.Groups["VarName2"].Value.ToUpper() == "YES" ? AccessControlType.Allow : AccessControlType.Deny;
permission.user = user;
switch (match.Groups["VarName1"].Value.ToUpper())
{
case "CREATESUBKEYS":
permission.rights = RegistryRights.CreateSubKey;
break;
case "ENUMERATESUBKEYS":
permission.rights = RegistryRights.EnumerateSubKeys;
break;
case "NOTIFY":
permission.rights = RegistryRights.Notify;
break;
case "CREATELINK":
permission.rights = RegistryRights.CreateLink;
break;
case "DELETE":
permission.rights = RegistryRights.Delete;
break;
case "READPERMISSION":
permission.rights = RegistryRights.ReadPermissions;
break;
case "CHANGEPERMISSION":
permission.rights = RegistryRights.ChangePermissions;
break;
case "TAKEOWNERSHIP":
permission.rights = RegistryRights.TakeOwnership;
break;
case "GENERICALL":
permission.rights = RegistryRights.FullControl;
break;
default:
new Exception("Unknown registry type;" + match.Groups["VarName1"].Value);
break;
}
al.Add(permission);
break;
}
}
}
return base.ConvertArrayListToObjArray<RegistryPermission>(al); ;
}
相关文章推荐
- Java使用正则表达式及字符串操作,抽取网页信息
- 字符串处理是许多程序中非常重要的一部分,它们可以用于文本显示,数据表示,查找键和很多目的.在Unix下,用户可以使用正则表达式的强健功能实现这些 目的,从Java1.4起,Java核心API就引入了java.util.regex程序包,它是一种有价值的基础
- 如何使用正则表达式进行QQ校友的数据采集
- 使用正则表达式快速修改mysql中错误的varchar类型数据
- 在C#中使用正则表达式自动匹配并获取所需要的数据
- 使用javascript正则表达式实现遍历html字符串
- JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
- Python 3(4)数据类型:字符串 & 正则表达式
- Java使用正则表达式验证常用字符串
- 使用正则表达式找出不包含特定字符串的条目
- 如何使用 awk 和正则表达式过滤文本或文件中的字符串
- 使用正则表达式校验字符串是否为数值(包含小数与负数)
- java使用正则表达式的方法从json格式的字符串中提取需要的字符串
- 使用正则表达式找出不包含特定字符串的条目
- 正则表达式的初体验:分析字符串数据
- 使用正则表达式去除数据中不必要的0
- Java中使用正则表达式处理文本数据
- Java使用正则表达式截取重复出现的XML字符串功能示例
- 使用正则表达式替换字符串中的字符
- 使用Hive的正则表达式匹配数据时为NULL