仅当行以特定条件开头时,RegEx 匹配行内的模式

RegEx match pattern within a line only if line begins with a specific criteria

仅当行以特定条件开头时,如何匹配行内的模式?

例如,假设我们想在仅以 Banana

开头的行上匹配 6-digit 数字
Banana lmasfh asfjhas jhona uh3 a y u3u3 303303 ajksdfkas 3jk5hk

Banana lmasfh asfjhas jhona uh3 a y u3u3 202202 ajksdfkas 3jk5hk

Apple lmasfh asfjhas jhona uh3 a y u3u3 101101 ajksdfkas 3jk5hk

从上面来看,结果应该只有 303303202202

我尝试查看正后视,但它们的宽度是固定的,无法继续。类似于:(?<=^Banana)\d{6}

你很接近。两者之间只有“东西”(在正则表达式中用 .* 很容易处理)。然后添加一个匹配组就可以了。

(?<=^Banana).*(\d{6})

将把303303202202都放入第一组。演示:https://regex101.com/r/k87i7x/1

您可以省略回溯并改为匹配它,并添加单词边界 \b 以防止部分匹配:

^Banana\b.*\b(\d{6})\b

Regex demo