正则表达式量词的反向引用

时间:2009-03-25 13:01:52

标签: c# regex

我有一个字符串,其中包含一个长度为以下字段的标题。

示例:

fillerfillerCA20 abcdefghijklmnopqrst CA5 zyxwvfillerfiller

我需要找到两个值: ABCDEFGHIJKLMNOPQRST 和 zyxwv

我打算使用反向引用来获得量词的长度:

(?i)ca(?<length>\d+?)\x20.{\k<length>}\x20?

但显然,不支持在量词中使用反向引用。

我该如何做到这一点?

2 个答案:

答案 0 :(得分:3)

不是一步到位。正则表达式不能自我指涉。它们首先构建,然后使用。一旦建立正则表达式,就不可能重建/扩充。

您可以像现在一样匹配长度信息,并在评估匹配时在第二步中使用它。

抢先评论:我知道有人可以"(.)\1"两次匹配同一个角色。不过,这不是我所说的“自我指涉”。

答案 1 :(得分:0)

更好地构建解析器:查找CA的位置,读取以下数字字符,然后按数字值描述读取下一个 x 字符。