我有两个字符串:"word1|word2"
,"word2|word1"
如果它包含正则表达式,有什么方法可以word2
从这些字符串中提取word1
?
我相信这样的事情会做到这一点:
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);
}
但是你的要求对我来说很不清楚,所以请随时详细说明:-)
split
将字符串|
放入数组,然后find
是您想要查找的任何字符串
我会采用更灵活的方法,例如在“|”上拆分 并检查每个部分,如果找到匹配项,则保存另一个。
如果您确实需要使用正则表达式,则(word1\|(.*)|(.*)\|word1)
可以将 word2 放入反向引用 1 中。
您可能需要调整该(.*)
部分,具体取决于此字符串是单独存在还是嵌入在不应匹配的其他文本中。
或使用环顾四周...
(?<=^word1\|).*|.*(?=\|word1$)
这样你就可以使用
match.Value
并完全忽略组和捕获。