繁体   English   中英

C#使用正则表达式从CAST语句获取变量

[英]C# getting variables from a CAST statement using Regex

我有以下输入字符串:

String text = "Cast(@myvar AS datetime)";

有什么方法可以提取使用正则表达式使用的变量和数据类型?

预期产量:

name ='@myvar'
type ='datetime'

您可以使用以下表达式并使用捕获组来获取对:

(?<=cast\()(.*)(?:\s+as\s+)(.*)(?=\))

见Regex101

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM