如何解决用正则表达式排除字符组合或添加一个字母
我正在尝试使用正则表达式调整 kodi 的 搜索过滤器,以便抓取工具从原始文件名中识别电视节目。
它们要么采用这种模式: “电视节目名称 S04E01 一些额外信息”或“电视节目名称 01 一些额外信息” 第一个不被识别,因为“S04”以多种方式扰乱搜索,这个需要去。 第二个不被识别,因为它需要在数字前加一个“e”,否则不会被识别为剧集号。
所以我看到了两种方法。
我没有使用正则表达式的经验,但我一直在想办法解决这个问题,这并不奇怪
^(?!s{00,99})\d{2}$
解决方法
您可以找到 \b([0-9]{2})\b
正则表达式匹配项并替换为 E$1
,或者在忽略过滤器中匹配 \bs(0[1-9]|[1-9][0-9])\b
模式。
详情
-
\b([0-9]{2})\b
- 匹配并捕获任何两位没有用字母、数字和_
括起来的数字,并将其捕获到组 1 中。E$1
替换意味着匹配的文本(两位数)被替换为自身(因为$1
指的是 Group 1 值),并在值前加上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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。