当前位置:编程学习 > C#/ASP.NET >>

C# 正则表达式取值

string str="M:Customer.Logic.GetUsersData(Entity.User,System.Int)"
string newStr[]=new string[2];
规则:
newStr[0]:取最后一个括号前到点的值(例:GetUsersData) //最后一个括号可能不存在.即:M:Customer.Logic.GetUsersData
newStr[1]:如果存在最后一个括号,则取其中的值(例:User Int),不存在则放空 //括号中的参数数量可能不一致 --------------------编程问答-------------------- (?:[^.()]+\.)+(?<v>[^\(.]+)(?:\(([^.]+\.[^.,]+,)+[^.]+\.([^.)]+)\))? --------------------编程问答--------------------

void Main()
{
string str="M:Customer.Logic.GetUsersData(Entity.User,System.Int)";
      List<string> newStr=new List<string>();
    Regex reg= new  Regex(@"(?:[^.()]+\.)+(?<v>[^\(.]+)(?:\(([^.]+\.([^.,]+),)+[^.]+\.([^.)]+)\))?");
newStr.Add(reg.Match(str).Groups["v"].Value);
reg.Match(str).Groups[2].Captures.Cast<Capture>()
.Concat(reg.Match(str).Groups[3].Captures.Cast<Capture>())
.Select(c=>c.Value).ToList().ForEach(c=>newStr.Add(c));
 
Console.WriteLine(newStr.ToArray());
}
--------------------编程问答-------------------- --------------------编程问答-------------------- Regex reg= new  Regex(@"(?:[^.()]+\.)+(?<v>[^\(.]+)(?:\(([^.]+\.([^.,]+),)+[^.]+\.([^.)]+)\))?");
========================================== 
Regex reg= new  Regex(@"(?:[^.()]+\.)+(?<v>[^\(.]+)(?:\(([^.]+\.([^.,]+),)*[^.]+\.([^.)]+)\))?");
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,