RegEx:如何不匹配重复

thigvfpy  于 2022-12-24  发布在  其他
关注(0)|答案(2)|浏览(126)

我有以下字符串:

test_abc123_firstrow
test_abc1564_secondrow
test_abc123_abc234_thirdrow
test_abc1663_fourthrow
test_abc193_abc123_fifthrow

我想得到每一行的abc +后面的数字。但是如果它有多个数字,就只取第一个。
我当前的模式如下所示:第一个月
但这不仅仅是第一个。
如果有人能帮我实现它,那就太好了。

vi4fp9gy

vi4fp9gy1#

使用以下正则表达式:
第一个月
1.使用^从输入的起始处开始

  1. .*?尽可能少地匹配零个或多个字符(换行符除外)(惰性方法)
    1.然后,捕获组将按预期捕获其余部分。
    Demo
rta7y2nd

rta7y2nd2#

您可以使用

^.*?([aA][bB][cC]\d+[a-z]*)

注意删除的\w,它匹配字母、数字和下划线,因此在您的模式中看起来是多余的。
在开头添加的^.*?

  • ^-字符串开始
  • .*?-除换行符外的任何零个或多个字符,尽可能少
  • ([aA][bB][cC]\d+[a-z]*)-捕获组1:aAbBcC,然后是一个或多个数字,然后是零个或多个小写ASCII字母。

相关问题