我试图从给定的文本中捕获第二个匹配项,即,
hash=e1467eb30743fb0a180ed141a26c58f7&token=a62ef9cf-2b4e-4a99-9335-267b6224b991:IO:OPCA:117804471:OPI:false:en:opsdr:117804471&providerId=paytm
在上面的文本中,我想捕获长度为 9 的第二个数字(117804471)。
我试过跟随,但没有奏效;所以请帮我解决这个问题。
我试图从给定的文本中捕获第二个匹配项,即,
hash=e1467eb30743fb0a180ed141a26c58f7&token=a62ef9cf-2b4e-4a99-9335-267b6224b991:IO:OPCA:117804471:OPI:false:en:opsdr:117804471&providerId=paytm
在上面的文本中,我想捕获长度为 9 的第二个数字(117804471)。
我试过跟随,但没有奏效;所以请帮我解决这个问题。
您可以使用
^(?:.*?\K\b[0-9]{9}\b){2}
请参阅正则表达式演示。
详情:
^
- 字符串的开始(?:
- 非捕获组的开始:
.*?
- 除换行符以外的任何零个或多个字符(尽可能少)后跟\K
- 匹配重置运算符丢弃到目前为止匹配的文本\b[0-9]{9}\b
- 一个 9 位数字作为一个完整的单词){2}
- 上面定义的模式序列的两次出现。