Regex查找括号内的第一个和最后一个元素

本文关键字:第一个 最后一个 元素 查找 Regex | 更新日期: 2023-09-27 18:26:06

我需要regex,它会在括号内给出第一个和最后一个元素。

F.e.来源:

String(0xHEX1,0xHEX2,0xHEX3)

我想得到第一个和最后一个元素:0xHEX10xHEX3(并不总是我在3上操作)

以前我使用(括号里总是有2个元素):

String'S([A-Fa-f0-9]+x[A-Fa-f0-9]+),([A-Fa-f0-9]+x[A-Fa-f0-9]+)

Regex查找括号内的第一个和最后一个元素

分辨率为:

String'((?<first>0x[0-9A-Fa-f]+).*?(?<last>0x[0-9A-Fa-f]+)')

这要归功于Vera rind,她在评论中回答了我的问题。非常感谢。

如果您想继续使用regex,这应该对您有用。

var regex = new Regex(@"String'((?<first>0x[a-fA-F0-9]+)(,0x[a-fA-F0-9]+)*,(?<last>0x[a-fA-F0-9]+)')");
var str = "String(0xaaaa,0xbbbb,0xcccc,0xdddd)";
var match = regex.Match(str);
Console.WriteLine(match.Groups["first"].Value);
Console.WriteLine(match.Groups["last"].Value);
Console.WriteLine("Done");
Console.ReadLine();

输出0xaaaa和0xdddd

Regex是不必要的,请尝试使用String.Split()函数。

例如:

    string x = "(0xHEX1,0xHEX2,0xHEX3)";
    string y = x.Substring(1, x.Length - 2);
    string[] elements = y.Split(',');

之后使用elements变量,您将可以轻松访问第一个和最后一个元素。

string first = elements[0] //First
string last = elements[elements.Length - 1]; //Last
相关文章: