0

我有两个字符串:"word1|word2","word2|word1"

如果它包含正则表达式,有什么方法可以word2从这些字符串中提取word1

4

4 回答 4

1

我相信这样的事情会做到这一点:

  var input = new String[] { "word1|word2", "word2|word1" };
  var regexp = @"word1\|(?<GROUP>.*)|(?<GROUP>.*)\|word1";
  foreach (var word in input)
  {
    var match = Regex.Match(word, regexp, RegexOptions.IgnoreCase);
    Console.WriteLine(match.Groups["GROUP"].Value);
  }

但是你的要求对我来说很不清楚,所以请随时详细说明:-)

于 2012-11-22T19:38:16.410 回答
1

split将字符串|放入数组,然后find是您想要查找的任何字符串

于 2012-11-22T19:31:32.357 回答
0

我会采用更灵活的方法,例如在“|”上拆分 并检查每个部分,如果找到匹配项,则保存另一个。

如果您确实需要使用正则表达式,则(word1\|(.*)|(.*)\|word1)可以将 word2 放入反向引用 1 中。

您可能需要调整该(.*)部分,具体取决于此字符串是单独存在还是嵌入在不应匹配的其他文本中。

于 2012-11-22T19:35:22.867 回答
0

或使用环顾四周...

 (?<=^word1\|).*|.*(?=\|word1$)

这样你就可以使用

 match.Value

并完全忽略组和捕获。

于 2012-11-23T01:22:25.763 回答