[英]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.