Compare commits
2 Commits
68d8bc55e8
...
873e15cac2
| Author | SHA1 | Date | |
|---|---|---|---|
| 873e15cac2 | |||
| 8fee59f62a |
@ -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))
|
||||
|
||||
@ -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的 和 不带前缀的
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user