2012-11-13 99 views
15

假設我想要一個正則表達式匹配「跳過這個橋FOOL」以及「跳過這個橋」。我如何使「FOOL」可選(0或1次出現)?正則表達式匹配1個或更少的字符串?

+11

我不明白爲什麼人們downvoted這一點。確定它在手冊中......但簡單的事實是API手冊通常是SUCK和堆棧交換。已成爲簡單主持答案的前往網站,沒有蹩腳的API文檔或15頁的博客。我遵循這個鏈接,因爲我忘記了如何和需要一個簡單的答案,沒有花費半個小時閱讀通過蹩腳的手冊,只是爲了找到簡單的東西。 此處的版主必須認識到,StackExchange已成爲人們賴以信賴的產品。像這樣的問題在S.E.中是精確的。產品定義。和它一起生活。 –

回答

12

You might want to have a look at a regex tutorial

正則表達式的選裝件都標有一個問號:

Jump over this bridge(FOOL)? 

如果你想匹配任何字符串,包括超過兩次少FOOL,事情變得有點複雜。然後,你將是最好關閉用negative lookahead更先進的理念:

^(?!(.*FOOL){2}) 

這將打開它的頭邏輯,並聲稱該字符串包含的FOOL 2(或更多)的實例。

+0

-1,每一個堆棧溢出問題都可以用「通過閱讀一個X教程」來回答,所以評論除了詆譭海報外沒有其他價值,不應該包含在內。回答的外部鏈接也不被贊同(答案應該在問題本身,就像你已經完成) – pjcard

+0

@pjcard同意。我已經重新回答了答案。 –

+1

謝謝,我已將其更改爲+1。 – pjcard

1

嘗試這樣做:

Jump over this bridge(FOOL)? 

你可以把一組字符串太:

Jump over this bridge(FOOL| FOOB)? 
10

您可以使用?標記將組的出現指定爲可選(發生0或1次),或者還可以使用最小/最大值爲0和1的大括號,因此答案爲:

Jump over this bridge(FOOL)? 

Jump over this bridge(FOOL){0,1} 
相關問題