regex 从后面匹配最后一个整数

bbmckpt7  于 2022-12-19  发布在  其他
关注(0)|答案(2)|浏览(156)

我有那些弦

hello,world,1.fin
hello,world,start11.fin
hello,world,start11,then,end22.fin
hello,world,111,then,222,then,end333.fin
hello,world,111,then,222,then,end333threes.fin
hello,world,111,then,222,then,end333threes.fin444

我只需要匹配.之前和world,之后的结尾数字,我期望得到

1
11
22
333
333
333

我尝试了这个,但它不匹配上一个案例,world,.*?(\d+)\.link,然后我尝试了这个,但它只从开始,world,.*?(\d+).*\.link
.fin不是静态的,它会随机更改为.fin444.444

fhity93d

fhity93d1#

这个应该可以

,world,.*?(\d+)[^\d]*\.

参见https://regex101.com/r/ilIsJb/1

lyfkaqu1

lyfkaqu12#

您可以使用

,world,(?:.*\D)?(\d+)[^\W\d]*\.
,world,(?:.*\D)?(\d+)[^\d.]*\.

请参见regex demo

  • 详细信息 *:
  • ,world,-固定字符串
  • (?:.*\D)?-一个可选序列,其中包含尽可能多的除换行符以外的任何零个或多个字符,然后是一个非数字字符
  • (\d+)-第1组:一个或多个数字
  • [^\W\d]*(或者,也可以使用[a-zA-Z_]*,甚至[^\d.]*来匹配除数字和点之外的任何零个或多个字符)-零个或多个字字符,不包括数字
  • \.-一个.字符

相关问题