我正在嘗試使用正則表達式執行模式匹配,並且似乎無法捕獲某個部分,並且後面跟隨一個可選部分,所有部分都在通配符捕獲之後。我不知道如何解決它。通配符後的可選匹配模式
這裏有匹配
MasterChef Junior 3x03 Grandad Gordon! (2015)
Parks and Recreation 7x03 & 7x04 William Henry Harrison (2015)
可能正則表達式的兩個不同的例子,我需要捕捉標題(MasterChef Junior
),季節(3
),情節(03
)和劇集名稱(Grandad Gordon!
) 。
我所創建的正則表達式模式^(.*) (\d*)x(\d*)\s*(.*) (\(\d*\))$
其中MasterChef Junior example匹配,但不是因爲Parks and Recreation example加入第二Season#
和Episode#
的。
我嘗試添加一個可選匹配來捕獲第二個SeasonxEpisode
,但它似乎在開始的通配符捕捉所有內容,並且該模式忽略可選部分(因爲它不需要使用它來匹配)。
example with optional(?:\s*&\s*\d*x\d*)?
我該如何解決這個問題的正則表達式?有沒有辦法以非greedy的方式在開始時捕捉通配符?
你的意思是這個https://www.regex101.com/r/uU8sS1/4?使第一個'。*'非貪婪。 – 2015-01-21 06:36:23