0

我有个问题。我有一些要解析的文本。问题是我使用正则表达式找到它:

text = Regex.Replace(text, @"\(DOWN\)\(LShift\)(.*?)\(UP\)\(LShift\)", "$1");

我想$1使用我的方法将每个字母从 value 解析成一些东西。但是这个方法的输入不是$1变量 value 而是一串 value "$1"

我试过:

text = Regex.Replace(text, @"\(DOWN\)\(LShift\)(.*?)\(UP\)\(LShift\)", ShiftsParser("$1"));
4

2 回答 2

2

研究使用MatchEvaluator。使用 lambda 的示例:

var result = Regex.Replace(input, pattern, match => 
{
    // $1 is equivalent to match.Groups[1].Value,
    // so do whatever you want and return the value here
});
于 2012-11-20T22:07:23.043 回答
0

您的方法应该将 Match 对象作为参数。

string ShiftsParser(Match match)
{
    string value = match.Groups[1].Value;  // $1 value.
    // Do some work with value
    return value;
}

我希望这会有所帮助。

于 2012-11-20T22:09:20.363 回答