您如何在Regex中回引用内部括号?
样本数据是一个产品价格清单,显示了基于购买数量的不同价格跌幅。格式为quantityLow-quantityHigh:pricePer;倍数。
我使用LINQPad构造了此C#Regex表达式以分离各部分,这显示了Regex数据分离的便捷可视化。在此示例中,存在“内部”括号(选择),从而创建了分层数据结构。
string mys = "1-4:2;5-9:1.89";
Regex.Matches (mys, @"((\d+)[-|\+](\d*):(\d+\.?\d*);?)").Dump(); // Graphically show
分解为(比赛就是一切。比赛中,有一个比赛和一个小组比赛。小组比赛中有几个比赛。)
MatchCollection(2个项目)
团体收藏(4件)
CaptureCollection(1个项目)()组“ 1-4:2;”
CaptureCollection(1个项目)()组“ 1”
CaptureCollection(1项目)()组“ 4”
CaptureCollection(1项目)()组“ 2”
CaptureCollection(1项目)()匹配“ 1-4; 2;”
团体收藏(4件)
CaptureCollection(1项目)()组“ 5-9:1.89”
CaptureCollection(1项目)()组“ 5”
CaptureCollection(1项目)()组“ 9”
CaptureCollection(1项目)()组“ 1.89”
CaptureCollection(1项目)()匹配“ 5-9:1.89”
仅供参考:
()括号组发现了可以由\ 1 .. \ 9引用的结果(我认为)。
\ d匹配一个数字。后面的+匹配一个或多个数字。*匹配零个或多个数字后。?之后说这个比赛是可选的。
。匹配一个字符。\。在这种情况下,匹配句点或小数
哆啦的时光机
智慧大石
相关分类