使用正则表达式排除字符组合或添加字母
Exclude a combination of characters with regex or add a letter
我正在尝试使用正则表达式调整 KODI 的 搜索过滤器,以便抓取工具根据原始文件名识别电视节目。
它们要么以这种模式出现:
“电视节目名称 S04E01 一些额外信息”或这个“电视节目名称 01 一些额外信息”
第一个不被识别,因为“S04”以多种方式扰乱搜索,这个需要去。
第二个不被识别,因为它需要在数字前加一个'e',否则它不会被识别为剧集编号。
所以我看到了两种方法。
使过滤器忽略 s01-99
添加一个 '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
后跟 01
和 99
之间的数字,因为 (0[1-9]|[1-9][0-9])
是匹配 0
的捕获组然后是从 1
到 9
([1-9]
) 的任何数字,或 (|
) 从 1
到 9
的任何数字 ([1-9]
) 然后任意数字 ([0-9]
).
注意:如果需要生成数字范围正则表达式,可以使用this JSFiddle of mine.
我正在尝试使用正则表达式调整 KODI 的 搜索过滤器,以便抓取工具根据原始文件名识别电视节目。
它们要么以这种模式出现: “电视节目名称 S04E01 一些额外信息”或这个“电视节目名称 01 一些额外信息” 第一个不被识别,因为“S04”以多种方式扰乱搜索,这个需要去。 第二个不被识别,因为它需要在数字前加一个'e',否则它不会被识别为剧集编号。
所以我看到了两种方法。
使过滤器忽略 s01-99
添加一个 '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
后跟01
和99
之间的数字,因为(0[1-9]|[1-9][0-9])
是匹配0
的捕获组然后是从1
到9
([1-9]
) 的任何数字,或 (|
) 从1
到9
的任何数字 ([1-9]
) 然后任意数字 ([0-9]
).
注意:如果需要生成数字范围正则表达式,可以使用this JSFiddle of mine.