簡體   English   中英

Regex.Match goups 包含完整字符串,如何排除

[英]Regex.Match goups includes full string, how to exclude

我有以下代碼;

var pattern = "(\".*\") (\".*\")";
var regex = Regex.Match(input, pattern);

input 的值將與此類似;

“字符串第 1 部分” “字符串第 2 部分”

正則表達式組包括以下

groups[0] = "string part1" "string part2"
groups[1] = "string part1"
groups[2] = "string part2"

有沒有辦法排除組[0],因為我只想連接字符串,同時刪除它們之間的“”,使其變為;

“字符串部分1字符串部分2”

對組中的值使用 LINQ .Skip(1) 然后,連接其余的項目:

var input = "\"string part1\" \"string part2\"";
var pattern = "\"(.*)\" \"(.*)\"";
var match = Regex.Match(input, pattern);
if (match.Success) 
{
    Console.WriteLine("\"{0}\"",
        string.Join(
            " ",
            match.Groups
              .Cast<Group>()
              .Select(x=>x.Value)
              .Skip(1)
        )
    );
}

在線查看C# 演示

注意我還移動了引號內的捕獲組邊界以去除組值中的引號。

另外,如果您想匹配最接近的引號之間的子字符串,請考慮另一種模式: var pattern = "\\"([^\\"]*)\\" \\"([^\\"]*)\\""; .

暫無
暫無

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

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