簡體   English   中英

regexp:如何提取子字符串

[英]regexp: how to extract substring

我有兩個字符串: "word1|word2""word2|word1"

如果它包含word1有沒有辦法用regexp從這些字符串中提取word2

| split字符串 到數組然后find你想要find任何字符串

我相信這樣的事情會這樣做:

  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);
  }

但是你的要求對我來說還不太清楚,所以請隨意精心制作:-)

我會采取更靈活的方法,比如拆分“|” 檢查每個部分,如果找到匹配則保存另一部分。

如果你真的需要使用正則表達式,像(word1\\|(.*)|(.*)\\|word1)會把word2放入反向引用1。

您可能需要調整(.*)部分,具體取決於此字符串是單獨還是嵌入在不應匹配的其他文本中。

或者環顧四周......

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

這樣你就可以使用了

 match.Value

並完全忽視團體和捕獲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM