2012-02-15 23 views
0

使用REMatchNoCase, 你怎麼可以寫一個正則表達式在字符串中找到以下使用正則表達式使用ColdFusion

小號##ë##或S ##Ë##è## ... 樣品 S01E01或S07E16E17

S和E可以大寫或小寫 並且可以有空間,如 S01中E01

謝謝

回答

0

這裏是您需要的正則表達式: 「(?i)(^ S \ d {2} E \ d {2} $)|(^ S \ d {2} E \ d {2} E \ d {2} $)」

+0

只有匹配是*整個*字符串,而不是按照需求「在字符串中」纔會有效。我發佈了一個稍微調整過的版本(加上CF特定的上下文)。 – 2012-02-15 16:51:53

+0

該要求還提到了空格,但需要對模式進行一些說明。 – Leigh 2012-02-15 20:59:06

+0

@Leigh:確實如此。我已經更新了我的答案。歡呼的單挑。 – 2012-02-16 08:25:38

1

試試這個:

matches = reMatchNoCase("S\d{2}(?:E\d{2}){1,2}", string); 

更新:雷在他的評論中,我錯過的要求,其中可選的空間可能是存在於位相當正確。雖然要求不清楚空間可能有效存在的位置。爲準確尊重陳述的例子中,正則表達式將調整爲:

S\s*\d{2}(?:E\d{2}){1,2} 

(注意\ S *列入,這意味着零個或多個空白字符)。如果空間可能出現更多位置,只需在這些位置插入\ s *即可。