使用正则表达式排除字符组合或添加字母

Exclude a combination of characters with regex or add a letter

我正在尝试使用正则表达式调整 KODI 的 搜索过滤器,以便抓取工具根据原始文件名识别电视节目。

它们要么以这种模式出现: “电视节目名称 S04E01 一些额外信息”或这个“电视节目名称 01 一些额外信息” 第一个不被识别,因为“S04”以多种方式扰乱搜索,这个需要去。 第二个不被识别,因为它需要在数字前加一个'e',否则它不会被识别为剧集编号。

所以我看到了两种方法。

  1. 使过滤器忽略 s01-99

  2. 添加一个 'e' 任何独立的两位数,但我担心正则表达式是否可以做到这一点。

我没有使用正则表达式的经验,但我一直在想办法解决这个问题,这并不奇怪

^(?!s{00,99})\d{2}$

您可以找到 \b([0-9]{2})\b 正则表达式匹配项并替换为 E,或者在忽略过滤器中匹配 \bs(0[1-9]|[1-9][0-9])\b 模式。

详情

  • \b([0-9]{2})\b - 将未包含在字母、数字和 _ 中的任何两位数字匹配并捕获到组 1 中。 E 替换意味着匹配的文本(两位数)被自身替换(因为 </code> 指的是第 1 组值),并在该值前加上 <code>E
  • \bs(0[1-9]|[1-9][0-9])\b - 匹配 s 后跟 0199 之间的数字,因为 (0[1-9]|[1-9][0-9]) 是匹配 0 的捕获组然后是从 19 ([1-9]) 的任何数字,或 (|) 从 19 的任何数字 ([1-9]) 然后任意数字 ([0-9]).

注意:如果需要生成数字范围正则表达式,可以使用this JSFiddle of mine.