[英]C# getting variables from a CAST statement using Regex
我有以下输入字符串:
String text = "Cast(@myvar AS datetime)";
有什么方法可以提取使用正则表达式使用的变量和数据类型?
预期产量:
name ='@myvar'
type ='datetime'
您可以使用以下表达式并使用捕获组来获取对:
(?<=cast\()(.*)(?:\s+as\s+)(.*)(?=\))
var text = "Cast(@myvar1 AS datetime2)" + Environment.NewLine + "Cast(@myvar2 AS datetime2)";
var matches = new Regex(@"(?<=cast\()(.*?)(?:\s+as\s+)(.*?)(?=\))", RegexOptions.IgnoreCase).Matches(text);
foreach(Match match in matches)
{
// first capturing group will be full match, so we need to start with index 1 for actual group 1
var name = match.Groups[1];
var type = match.Groups[2];
Console.WriteLine("Name: {0}, Type: {1}", name, type);
}
// Name: @myvar1, Type: datetime2
// Name: @myvar2, Type: datetime2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.