0

我正在进行大型机套接字调用。每条消息都会有不同的响应,但包含在该响应中的是一个消息代码,它将表示成功或失败。

我已经构建了一个套接字对象,它将使套接字调用大型机。我希望能够动态评估响应并让对象确定它是成功还是失败。

本质上,此时我正在处理字符串响应消息。

理想情况下,我会将消息“Mid(ResponseMessage,17,2)”保存为字符串,然后进行评估。因为我不能,我正在寻找正则表达式来做类似的功能。

那么,让正则表达式查看字符串并获得类似的中间表达式返回的最佳方法是:Mid(ResponseMessage,17,2)?

每个肯,我正在添加字符串值示例:“000000000000000099”

基于基督徒示例,我尝试了以下代码:

ResponseMessage = "000000000000000099 " Text.RegularExpressions.Regex.Match(ResponseMessage,"^.{16}(.{2})").Value

我收到"000000000000000099"
的输出是我期望的输出是:"99"

4

1 回答 1

1

这个怎么样:"^.{16}(.{2})"

更新

Match.Value不是从正则表达式中提取匹配组的方式。你想要这样的代码:

private static string Mid172(string text) {
    var match = Regex.Match(text, "^.{16}(.{2})");
    if(match.Success) {
        return match.Groups[1].Value;
    } else {
        return null;
    }
}

或者让它像它正在模拟的 VB 函数一样通用:

private static string Mid(string text, int oneBasedStart, int length) {
    var match = Regex.Match(text, string.Format("^.{{{0}}}(.{{{1}}})", oneBasedStart - 1, length));
    if(match.Success) {
        return match.Groups[1].Value;
    } else {
        return null;
    }
}
于 2013-08-30T13:52:08.160 回答