初始化 monorepo: Go后端(7微服务) + Unity客户端(9模块) + 启动器 HTML5原型: Three.js 3D体素世界, Perlin噪声地形, 原版材质, 22种方块 Minecraft创造模式背包: 双栏布局, 拖拽移动物品, 方向性元件引脚 AI助搭策划文档 + 客户端/服务端骨架 + Docker Compose + CI
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user