簡體   English   中英

具有不同分辨率后綴的劇集標題的正則表達式匹配

[英]RegEx matching on episode titles with different resolution suffixes

我正在嘗試捕獲節目名稱、劇集編號、劇集標題和分辨率(如果存在)。 我收藏的標准高清劇集沒有分辨率后綴。

對於給定的樣本:

Show Name - S01E02 - This Is a High-Def Episode Title - 720p
Show Name - S01E03 - This Is a High-Def Episode Title - 1080p
Show Name - S01E04 - This Is a Standard-Def Episode Title
Show Name - S01E05E06 - This Is a High-Def Double Episode Title - 720p

這與我在 regex101.com 上可以得到的一樣接近:

(?<show>[\w ]+) - (?<episode>S[0-9]{2}E[0-9]{2}E?[0-9]{0,2}) - (?<title>[\w -]+)(?: - )(?<res>(?:720p)|(?:1080p))

它適當地捕獲了所有具有分辨率的,但是當我添加? 到最后一個捕獲組——其中確實包括標准的 def 劇集——標題組吸收分辨率。 我認為我需要在標題組中包含一個負前瞻,但我不確定如何做到這一點並同時捕捉它。 是的,劇集標題中可以有破折號。

任何指針表示贊賞。 如果提供代碼片段,我將在 C# 中編寫我的重命名腳本,如果它有任何區別的話。 謝謝。

您可以使用

^(?<show>.*?) - (?<episode>S[0-9]{2}E[0-9]{2}(?:E[0-9]{2})?) - (?<title>.*?)(?: - (?<res>(?:720|1080)p))?$

請參閱正則表達式演示 詳情

  • ^ - 字符串開頭 - (?<show>.*?) - 組“顯示”:除換行符之外的任何零個或多個字符,盡可能少
  • - - 文字-文本
  • (?<episode>S[0-9]{2}E[0-9]{2}(?:E[0-9]{2})?) - 組“episode”: S ,兩位數, E , 兩個數字和一個可選組,匹配E和兩個數字的一個或零個出現
  • - - 文字-文本
  • (?<title>.*?) - 組“title”:除換行符之外的任何零個或多個字符,盡可能少
  • (?: - (?<res>(?:720|1080)p))? - 一個可選的序列
    • - - 文字-文本
    • (?<res>(?:720|1080)p) - 組“res”: 7201080后跟p
  • $ - 字符串結束。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM