[英]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”: 720
或1080
后跟p
$
- 字符串結束。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.