Regex 使用正则表达式排除字符组合或添加字母
我正试图用正则表达式调整KODI的搜索过滤器,以便刮片器从原始文件名中识别电视节目 它们要么以这种模式出现: “电视节目名称S04E01一些额外信息”或此“电视节目名称01一些额外信息” 第一个不被识别,因为“S04”以多种方式扰乱搜索,这需要继续。 第二个不被识别,因为它在数字之前需要一个“e”,否则,它将不会被识别为一个集号 因此,我看到两种方法Regex 使用正则表达式排除字符组合或添加字母,regex,web-scraping,kodi,Regex,Web Scraping,Kodi,我正试图用正则表达式调整KODI的搜索过滤器,以便刮片器从原始文件名中识别电视节目 它们要么以这种模式出现: “电视节目名称S04E01一些额外信息”或此“电视节目名称01一些额外信息” 第一个不被识别,因为“S04”以多种方式扰乱搜索,这需要继续。 第二个不被识别,因为它在数字之前需要一个“e”,否则,它将不会被识别为一个集号 因此,我看到两种方法 使过滤器忽略s01-99 在任何独立的两位数前加上“e”,但我担心正则表达式是否能做到这一点 我没有在正则表达式方面的经验,但我一直在玩这个,
^(?!s{00,99})\d{2}$
您可以在忽略筛选器中找到
\b([0-9]{2})\b
正则表达式匹配项并替换为E$1
,或者匹配\b(0[1-9]|[1-9][0-9])\b
模式
详细信息
-匹配并捕获组1中未包含字母、数字和\b([0-9]{2})\b
\u的任何两个数字。
替换意味着匹配文本(两位数字)被替换为自身(因为E$1
指的是第1组值),并在值前面加上$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]
注意:如果您需要生成一个数字范围正则表达式,您可以使用。您能更具体一点吗?您有
电视节目名称S04E01一些额外信息
和电视节目名称01一些额外信息
。现在,你想得到什么结果?您使用什么工具来获得结果?你到底在尝试什么,什么不起作用?它是如何工作的?是的,请直接为问题添加更多细节。我觉得我在最初的帖子中太不具体了。所以我可以用两种格式来制作我的节目,要么是“S01E01”,要么就是“01”,我可以根据我能得到的过滤器来选择哪种格式。如果什么都没有,就假设是S01。柯迪理解电视剧插曲的唯一方式是“E01”格式。如果有一个“S02-S99”的前缀,它会导致问题,特别是对于动画,每个季节都有单独的文件夹。第四季《泰坦之战》对Kodi来说被称为“泰坦之战:最后一季”,这是最后一季的S01,所以最好不要使用它。Kodi有一个内置的正则表达式过滤器,可以根据需要进行调整/附加。kodi.wiki/view/Advancedsettings.xml(本例中为tvshowmatching部分)我正在尝试此筛选器忽略文件名的所有“S00-S99”内容,或在文件名中的独立两位数中添加“E”,具体取决于我将选择的源文件类型。我只需要其中一个解决方案的工作,并将相应地调整源材料。(releasegroups只有这两种命名策略)好的,将E
添加到任何两位数都很容易:\b([0-9]{2})\b
=>E$1
,但您需要使用特定的正则表达式替换方法。我不知道科迪有没有。