我有两个字符串:"word1|word2"
,"word2|word1"
如果这些字符串包含word2
,是否有任何方法可以从正则表达式中提取word1
?
答案 0 :(得分:1)
split
|
字符串到数组中,然后find
您想要找到的任何字符串
答案 1 :(得分: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);
}
但是你的要求对我来说还不太清楚,所以请随意提及: - )
答案 2 :(得分:0)
我会采取更灵活的方法,例如拆分“|”检查每个部分,如果找到匹配则保存另一部分。
如果你真的需要使用正则表达式,像(word1\|(.*)|(.*)\|word1)
之类的东西会将word2放入反向引用1中。
您可能需要调整(.*)
部分,具体取决于此字符串是单独还是嵌入在不应匹配的其他文本中。
答案 3 :(得分:0)
或者环顾四周......
(?<=^word1\|).*|.*(?=\|word1$)
这样你可以使用
match.Value
完全无视群组和捕获。