如何让正则表达式找到一定距离外的字符串?

How can I make regex find a string a certain distance away?

例如,这是我到目前为止想出的

lasts{0,1}.*?(\d).*?doggs

开头部分可以是 lastlasts 加上 s.

现在,我想在它找到的任何地方之前最多查看 10 个字符 lasts{0,1} 如果它在这 10 个字符中找到一个数字,请再次查看最多 10 个字符中的任何地方是否是字符串 doggs

这可能吗?

这是一个例子

So I figure if I use them about 7-8 hours a day they should last about 5.8 doggs. That works out

我只想得到5

`lasts{0,1}.{0,10}\d.{0,10}doggs`

lasts{0,1}可以替换为lasts?

您可以使用更多限制量词:

lasts?.{0,10}?(\d).{0,10}doggs
      ^^^^^^^^    ^^^^^^^

regex demo

图案说明:

  • lasts? - 匹配 lastlasts
  • .{0,10}? - 匹配 0 到 10 个字符 尽可能少 除了换行符(使用 DOTALL 修饰符也匹配换行符)
  • \d - 一个数字
  • .{0,10} - 见上文
  • doggs - 匹配文字字符序列 doggs.