2012-04-06 17 views
0

所以我是新來的正則表達式,難以理解它們。爲了讓我的腳溼潤,我製作了一個用短劃線或斜線標識日期的標籤。它看起來像這樣:用正則表達式尋找一個特定的簡單字符串

\d{1,2}[-/]\d{1,2}[-/](\d{4}|\d{2}) 

我知道這是不是100%準確,因爲假設它會接受32-96-2012的日期,但是這很好。這不是作業或工作,所以它不需要,我只是想了解簡單的正則表達式。

所以現在我想了解如何搜索特定的詞,我很困惑。例如,如果我想搜索一個文本文檔中的單詞「肥皂」或「湯姆」。如果有人可以發佈一個簡單的例子和​​描述,我會很感激!

+0

是什麼的問題(重:日期)的第一部分與第二部分怎麼辦?你試過什麼了? – 2012-04-06 14:37:13

回答

1

使正則表達式儘可能可讀(不管你信不信)。所以如果我想用soap這個詞搜索一個文本文檔,那麼正則表達式就是「soap」。

如果我想肥皂或湯,然後就變成(?:肥皂| TOM)。 (?:)外殼意味着將(?:)外殼的內容視爲小型正則表達式。 |字符是一個或運算符,意思是無論是在左邊什麼的權利。因此,(?:soap | Tom)意思是找到soap這個詞或Tom這個詞。

爲什麼我不能寫了肥皂|湯呢?如果我想查找「肥皂盒」或「湯姆盒子」,那麼肥皂|湯姆盒子將不起作用。這將匹配肥皂或湯姆盒,但不是肥皂盒。

它首先肯定是混亂的,但你學會尋找分組,並把它拆開,一塊一塊知道它的真正尋找。

+0

除非你想避免創建一個組,否則你不需要'?:' - - (肥皂|湯姆)將工作得很好。你對此的理解稍微偏離。 – bluepnume 2012-04-06 14:51:24

+0

@bluepnume,你爲什麼要捕捉肥皂或湯姆?如果你正在提取信息,捕獲組更有意義。如果你只是找到它,最好使用一個非捕獲組。此外,這是一個簡單的解釋,我只是假設提供一個沒有捕獲組的例子,如果他不知道其中的差異,那麼捕獲組的例子會比捕獲組更快。 – Neil 2012-04-07 14:28:31

相關問題