Compare commits

...

2 Commits

Author SHA1 Message Date
873e15cac2 Merge branch 'main' of http://10.27.17.121:3000/kawagiri/TH1 into main 2026-05-18 00:04:30 +08:00
8fee59f62a 修复报错 2026-05-18 00:04:23 +08:00
2 changed files with 14 additions and 15 deletions

View File

@ -1300,24 +1300,23 @@ namespace Logic.Editor
continue;
}
// 检查是否以 ![n] 或历史格式 [n] 开头
// 检查是否以 ![n] 开头,仅数字 n 算顺序标记。
// 普通文本如 [马]职阶英雄 不能被当成顺序标记。
string prefix = null;
string actualStr = innerContent;
var prefixRegex = new Regex(@"^!?\[([^\]]*)\](.*)$", RegexOptions.Singleline);
var prefixRegex = new Regex(@"^!\[(\d+)\](.*)$", RegexOptions.Singleline);
var prefixMatch = prefixRegex.Match(innerContent);
if (prefixMatch.Success)
{
var prefixValue = prefixMatch.Groups[1].Value;
// 检查 n 是否为数字
if (!int.TryParse(prefixValue, out _))
{
LogSystem.LogError($"**<>**内的前缀[n]中n不是数字内容: {innerContent}");
continue;
}
prefix = prefixValue;
actualStr = prefixMatch.Groups[2].Value;
}
else if (Regex.IsMatch(innerContent, @"^\[\d+\]", RegexOptions.Singleline))
{
LogSystem.LogError($"**<>**内的顺序标记缺少!,请写成**<![n]文本>**,内容: {innerContent}");
continue;
}
// 已经是转化后的ID格式了不需要再转化了
if (uint.TryParse(actualStr, out var strId))

View File

@ -198,7 +198,7 @@ namespace Logic.Multilingual
var origin = item.GetStrByType(type);
if (string.IsNullOrEmpty(origin)) return result;
var regex = new Regex(@"\*\*<(?:!?\[(\d+)\])?(\d+)>\*\*");
var regex = new Regex(@"\*\*<(?:!\[(\d+)\])?(\d+)>\*\*");
var matches = regex.Matches(origin);
foreach (Match m in matches)
{
@ -216,7 +216,7 @@ namespace Logic.Multilingual
{
if (string.IsNullOrEmpty(origin)) return string.Empty;
var regex = new Regex(@"\*\*<(?:!?\[(\d+)\])?(\d+)>\*\*");
var regex = new Regex(@"\*\*<(?:!\[(\d+)\])?(\d+)>\*\*");
var result = regex.Replace(origin, m =>
{
var prefixGroup = m.Groups[1]; // [n] 中的 n
@ -255,7 +255,7 @@ namespace Logic.Multilingual
{
if (string.IsNullOrEmpty(origin)) return string.Empty;
var regex = new Regex(@"\*\*<(?:!?\[(\d+)\])?(\d+)>\*\*");
var regex = new Regex(@"\*\*<(?:!\[(\d+)\])?(\d+)>\*\*");
var result = regex.Replace(origin, m =>
{
var prefixGroup = m.Groups[1]; // [n] 中的 n
@ -291,7 +291,7 @@ namespace Logic.Multilingual
{
if (string.IsNullOrEmpty(origin)) return string.Empty;
var regex = new Regex(@"\*\*<(?:!?\[(\d+)\])?(.+?)>\*\*");
var regex = new Regex(@"\*\*<(?:!\[(\d+)\])?(.+?)>\*\*");
var result = regex.Replace(origin, m =>
{
var prefixGroup = m.Groups[1]; // [n] 中的 n
@ -361,7 +361,7 @@ namespace Logic.Multilingual
if (string.IsNullOrEmpty(zhResolved)) return otherOrigin;
// 解析中文已转换的嵌入引用
var zhRegex = new Regex(@"\*\*<(?:!?\[(\d+)\])?(\d+)>\*\*");
var zhRegex = new Regex(@"\*\*<(?:!\[(\d+)\])?(\d+)>\*\*");
var zhMatches = zhRegex.Matches(zhResolved);
// 构建中文的 n->完整匹配 字典带前缀n的和 无前缀的有序列表
@ -385,7 +385,7 @@ namespace Logic.Multilingual
// 解析其他语言的嵌入引用
// 允许匹配 **<>**(空内容),导回时也按中文顺序对齐为 **<id>**
var otherRegex = new Regex(@"\*\*<(?:!?\[(\d+)\])?(.*?)>\*\*");
var otherRegex = new Regex(@"\*\*<(?:!\[(\d+)\])?(.*?)>\*\*");
var otherMatches = otherRegex.Matches(otherOrigin);
// 分类其他语言的匹配带前缀n的 和 不带前缀的