CI / Go Backend (push) Canceled after 0s
初始化 monorepo: Go后端(7微服务) + Unity客户端(9模块) + 启动器 HTML5原型: Three.js 3D体素世界, Perlin噪声地形, 原版材质, 22种方块 Minecraft创造模式背包: 双栏布局, 拖拽移动物品, 方向性元件引脚 AI助搭策划文档 + 客户端/服务端骨架 + Docker Compose + CI
60 lines
1.4 KiB
C#
60 lines
1.4 KiB
C#
using System.Text.RegularExpressions;
|
|
using PCL.Core.Logging;
|
|
|
|
namespace PCL;
|
|
|
|
internal static class CrashRegex
|
|
{
|
|
public static string? First(
|
|
string text,
|
|
string pattern,
|
|
RegexOptions options = RegexOptions.None)
|
|
{
|
|
try
|
|
{
|
|
var value = Regex.Match(text, pattern, options).Value;
|
|
return string.IsNullOrEmpty(value)
|
|
? null
|
|
: value;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogWrapper.Warn(ex, "Crash", "正则匹配第一项出错");
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public static List<string> All(
|
|
string text,
|
|
string pattern,
|
|
RegexOptions options = RegexOptions.None)
|
|
{
|
|
try
|
|
{
|
|
return Regex.Matches(text, pattern, options)
|
|
.Select(match => match.Value)
|
|
.ToList();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogWrapper.Warn(ex, "Crash", "正则匹配全部项出错");
|
|
return [];
|
|
}
|
|
}
|
|
|
|
public static bool IsMatch(
|
|
string text,
|
|
string pattern,
|
|
RegexOptions options = RegexOptions.None)
|
|
{
|
|
try
|
|
{
|
|
return Regex.IsMatch(text, pattern, options);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogWrapper.Warn(ex, "Crash", "正则检查出错");
|
|
return false;
|
|
}
|
|
}
|
|
} |