gpt4 book ai didi

regex - 如何只在模式中使用一次输入?

转载 作者:行者123 更新时间:2023-12-04 08:27:58 25 4
gpt4 key购买 nike

正则表达式 = ^(movie|tv) (.*) (?<=season )([0-9 ]+)输入 = tv game of thrones season 1 2 3输出

tv
game of thrones season
1 2 3
期望的输出
tv
game of thrones
1 2 3
https://regex101.com/r/wG3aM3/954 (.*)捕获 ([0-9 ]+) 之前的所有字符串我怎样才能阻止它捕获 (?<=season )这是之前的 ([0-9 ]+) .
P.S 我不能从 (.*) 否定“季节” .即 tv game of season season 1 2 3应该捕获 tv game of season 1 2 3

最佳答案

您可以使用

^(movie|tv)\s*(.*?)(?:\s+season)?(?:\s+([0-9]+(?:\s+[0-9]+)*))?$
regex demo .
详情
  • ^ - 字符串开头
  • (movie|tv) - 第 1 组:movietv
  • \s* - 零个或多个空格
  • (.*?) - 第 2 组:除换行符以外的任何零个或多个字符,尽可能少
  • (?:\s+season)? - 一个可选的非捕获组匹配一个或多个空格,后跟 season字符串
  • (?:\s+([0-9]+(?:\s+[0-9]+)*))? - 一个可选的非捕获组匹配
  • \s+ - 一个或多个空格
  • ([0-9]+(?:\s+[0-9]+)*) - 第 3 组:一个或多个数字后跟零个或多个重复的一个或多个空格字符后跟一个或多个数字

  • $ - 字符串的结尾。
  • 关于regex - 如何只在模式中使用一次输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65172133/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com