我需要在 C# 中使用正则表达式来拆分类似“21A244”的内容,其中
- 前两个数字可以是 1-99
- 字母只能是1个字母,AZ
- 后三位可以是 111-999
所以我做了这场比赛“([0-9]+)([AZ])([0-9]+)”
但由于某种原因,在 C# 中使用时,匹配函数只返回输入字符串。所以我在 Lua 中尝试了它,只是为了确保模式是正确的,并且它在那里工作得很好。
以下是相关代码:
var m = Regex.Matches( mdl.roomCode, "(\\d+)([A-Z])(\\d+)" );
System.Diagnostics.Debug.Print( "Count: " + m.Count );
如果你想知道,这里是可用的 Lua 代码
local str = "21A244"
print(string.match( str, "(%d+)([A-Z])(%d+)" ))
感谢您的任何帮助
编辑:找到解决方案
var match = Regex.Match(mdl.roomCode, "(\\d+)([A-Z])(\\d+)");
var group = match.Groups;
System.Diagnostics.Debug.Print( "Count: " + group.Count );
System.Diagnostics.Debug.Print("houseID: " + group[1].Value);
System.Diagnostics.Debug.Print("section: " + group[2].Value);
System.Diagnostics.Debug.Print("roomID: " + group[3].Value);