You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C#中如何匹配含通配符*的两个字符串?

C#中通配符字符串匹配的实现方式

不能直接把带*的string2当作正则模式传给Regex.Match,因为正则表达式里的*是量词,作用是匹配前面的字符零次或多次,和你需求里代表任意文本的通配符不是一个意思。

要实现需求,需要先把通配符风格的字符串转换成合法的正则表达式,具体步骤如下:

  • 用Regex.Escape转义所有正则特殊字符(比如.、+这类),避免它们被当作正则语法解析
  • 把转义后的\*替换成正则中代表任意字符(除换行)的.*

示例代码:

string string1 = "/api/mymember/get";
string string2 = "/api/*/get";

// 转换通配符为正则模式
string regexPattern = Regex.Escape(string2).Replace("\\*", ".*");
Match matchResult = Regex.Match(string1, regexPattern);

if (matchResult.Success)
{
    Console.WriteLine("字符串匹配成功");
}
else
{
    Console.WriteLine("字符串匹配失败");
}

如果不想依赖正则,也可以自定义逻辑:把string2按*分割成多个子串,然后依次检查这些子串是否按顺序出现在string1中,但这种方式需要处理边界情况(比如开头/结尾的*),正则方案更简洁通用。

内容的提问来源于stack exchange,提问作者user23655351

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 11:02:03