c# - 无法将类型 'string' 隐式转换为 'System.Text.RegularExpressions.Match'

标签 c# regex

我使用正则表达式编写了一些代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string input = @"ch/js/789747b7/scriptSearch.js"",videoJsSrc:""res/batch/js/3c9a6ee1/scriptVideo.js"",apiFormAppJSSrc:""res/batch/js/9fa7e22b/apiFormApp.js"",easyXDMJs:""res/batch/js/8f3e66db/easyXDM.min.js"",nativeHooksSrc:""res/batch/js/539ea638/nativeHooks.js"",gwtHash:""1bcb94eb"",jsessionId:";
            Match output = Regex.Match(input, @"gwtHash:""(.*?)""").Value;
            Console.WriteLine(output);
            Console.ReadKey();
        }
    }
}

但是我得到这个错误:

Error   1   Cannot implicitly convert type 'string' to 'System.Text.RegularExpressions.Match'   C:\Users\asus\AppData\Local\Temporary Projects\ConsoleApplication1\Program.cs   14  28  ConsoleApplication1

怎么了?

最佳答案

属性 Value 的类型为 string。因此,您需要将 Regex.Match 方法的结果分配给您的 Match 对象,然后将其 Value 写入控制台

Match output = Regex.Match(input, @"gwtHash:""(.*?)""");
Console.WriteLine(output.Value);

或者将output变量类型改为字符串:

string output = Regex.Match(input, @"gwtHash:""(.*?)""").Value;
Console.WriteLine(output);

要获取 1bcb94eb 使用

Match output = Regex.Match(input, @"gwtHash:""(.*?)""");
if (output.Success)
    Console.WriteLine(output.Groups[1].Value);

关于c# - 无法将类型 'string' 隐式转换为 'System.Text.RegularExpressions.Match',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13670354/

相关文章:

regex - 正则表达式中单词的插入符/否定

java - 正则表达式字边界

c# - 无法设置图像不透明度属性

c# - Visual Studio - Windows 8.1 或更低版本用户的 .NET Framework 4.6.1 问题

c# - 覆盖或隐藏部分类中的属性

c# - 使用Application.Exit退出应用程序而不显示GUI

c# - 如何在 linq to NHibernate 中使用 select for associations

java - 如何通过正则表达式防止感叹

ruby - 在 Ruby 中解析字符串(正则表达式?)

python - C++ 程序字符串搜索的速度可以和 python 一样快吗?