regex 使用正则表达式获取德语电影名称和年份

mklgxw1f  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(130)

我想从字符串中删除除电影的标题和年份以外的所有内容
我想保留所有不在括号内的内容:

**Dirty.Work.Wie.deweit.wuerdest.Du.gehen.2018**[.German.AC3.WEBRip]
**Zwei.baerenstarke.Typen.1983**[.DE.EN.DTSHD.MasteDEr.5.1.2160p.HDR10.x265-kellerratte]
**The.Hills.Have.Eyes.1977**[.COMPLETE.UHD.BLURAY-UNTOUCHED]
**Wonder.Woman.1984.2020.**[GERMAN.DUBBED.DL.2160p.HDR.WEB.x265]
**Wonder.Woman.1984**[.GERMAN.]**2020**[.DUBBED.DL.2160p.HDR.WEB.x265]
**2012**[.German.]**2006**[.DL.2160p.UHD.BluRay.HDR.HEVC.Remux]

**Sherlock.Holmes.2009**[.German.DL.]**2022**[.ock.Holmes.UHD.BluRay.2160p.UHD.BluRay.HDR.HEVC.Remux]

预期值:

Dirty.Work.Wie.deweit.wuerdest.Du.gehen.2018
Zwei.baerenstarke.Typen.1983
The.Hills.Have.Eyes.1977
Wonder.Woman.1984 2020 
Wonder.Woman.1984 2020 
2012 2006 
Sherlock.Holmes.2009 2022

这就是我所尝试的:

((?<=\b\d{4}\b)|\b(German|DE)\b.*)

https://regex101.com/r/Z4cRMn/1
有人知道怎么做吗?也许需要一些例子

yrefmtwq

yrefmtwq1#

您可以使用

\[[^\]\[]*]|\W*\b(?:\d{4}|German|DE)\b(?!.*\[[^\]\[]*]).*

请参阅regex demo。* 详细数据 *:

  • \[-一个[字符
  • [^\]\[]*-除[]之外的零个或多个字符
  • ]-一个]字符
  • |-或
  • \W*-零个或多个非字字符
  • \b-字边界
  • (?:\d{4}|German|DE)-四位数字或GermanDE
  • \b-字边界
  • (?!.*\[[^\]\[]*])-在当前位置的右侧,不应有
  • .*-任何零个或多个字符,尽可能多的换行符字符除外
  • \[[^\]\[]*]-[,除[]之外的零个或多个字符,然后是]
  • .*-行的其余部分。

相关问题