Regex查找括号内的第一个和最后一个元素
本文关键字:第一个 最后一个 元素 查找 Regex | 更新日期: 2023-09-27 18:26:06
我需要regex,它会在括号内给出第一个和最后一个元素。
F.e.来源:
String(0xHEX1,0xHEX2,0xHEX3)
我想得到第一个和最后一个元素:0xHEX1
和0xHEX3
(并不总是我在3上操作)
以前我使用(括号里总是有2个元素):
String'S([A-Fa-f0-9]+x[A-Fa-f0-9]+),([A-Fa-f0-9]+x[A-Fa-f0-9]+)
分辨率为:
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