我有一个字符串,其中包含一个长度为以下字段的标题。
示例:
fillerfillerCA20 abcdefghijklmnopqrst CA5 zyxwvfillerfiller
我需要找到两个值: ABCDEFGHIJKLMNOPQRST 和 zyxwv
我打算使用反向引用来获得量词的长度:
(?i)ca(?<length>\d+?)\x20.{\k<length>}\x20?
但显然,不支持在量词中使用反向引用。
我该如何做到这一点?
答案 0 :(得分:3)
不是一步到位。正则表达式不能自我指涉。它们首先构建,然后使用。一旦建立正则表达式,就不可能重建/扩充。
您可以像现在一样匹配长度信息,并在评估匹配时在第二步中使用它。
抢先评论:我知道有人可以"(.)\1"
两次匹配同一个角色。不过,这不是我所说的“自我指涉”。
答案 1 :(得分:0)
更好地构建解析器:查找CA
的位置,读取以下数字字符,然后按数字值描述读取下一个 x 字符。