繁体   English   中英

如何正则表达式C#字符串

[英]How to regex c# string

我有以下字符串,并且我尝试仅提取FUNC()中的内容:

FUNC(strToExtract)

我在使用Regex.Replace()提取文件时遇到了麻烦

样的帮助将不胜感激

谢谢

如果您知道字符串将始终以“ FUNC(”开头,以“)”结尾,那么不使用正则表达式会便宜很多:

string myString = "FUNC(strToExtract)";
string startsWith = "FUNC(";
string endsWith = ")";
if (myString.StartsWith(startsWith) && myString.EndsWith(endsWith))
{
  string extracted = myString.Substring(startsWith.Length, myString.Length - endsWith.Length - startsWith.Length);
}

嗨,您可以尝试这样的事情:

Regex regexp = new Regex(@"FUNC((.*))", RegexOptions.IgnoreCase);
MatchCollection matches = regexp.Matches(inputString);
Match m = matches[0];
Group g = m.Groups[0];

编辑:删除@“ FUNC((。*))”中的转义()

尝试这个:

string input = "Func(params)";
string pattern = @"\w+\((.+?)\)";
Match m = Regex.Match(input, pattern);
string result = m.Groups[1].Value;
Console.WriteLine(result);

括号必须转义,否则将被解释为正则表达式组。 .+? 将匹配至少一个字符并且不是贪婪的,因此,如果同一输入中存在多个匹配项,则匹配不会超过必要的范围。 \\w+的使用使模式足够灵活以处理不同的函数名称,而不仅仅是“ Func”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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