2013-02-12 120 views
0

我正在尋找一個單線正則表達式,它可以與可選圓括號匹配。當括號存在時,它們不應該包含在匹配模式中。如何使用可選的左括號來匹配模式?

以下粗體文字證明什麼應該/不匹配:

應符合:

「標題描述(AAA123)」

「(ABC000 )標題描述「

」Title De scription DEF999

」標題 - RST321 - 說明「

不應與:

」標題描述AB123「

」 標題描述CCC456a 「

「標題描述(ABE999c)」

+0

那麼,你有什麼嘗試? – 2013-02-12 13:52:52

+1

@Rohit Jain而不是一個很好的編輯。你搞砸了。 – 2013-02-12 13:53:09

+0

@RohitJain:試過這個「()?([a-zA-Z] {3} [0-9] {3})()?」但它匹配結束字符,不管它是否包含圓括號 – 2013-02-12 14:09:26

回答

3

試試這個正則表達式:

\b[a-zA-Z]{3}\d{3}\b 

這符合:

# \b   - A word boundary, 
# [a-zA-Z]{3} - followed by 3 letters, 
# \d{3}  - followed by 3 digits, 
# \b   - followed by a word boundary. 

正則表達式不關心括號,如要求,但沒有按不匹配太長的字符串。

+1

你也會匹配'___ 345'和'234456' – nhahtdh 2013-02-12 14:11:02

+0

@nhahtdh:哎呀,我沒有想到'\ w'也匹配那些。編輯,謝謝! – Cerbrus 2013-02-12 14:12:24

+0

@Cerbrus:非常好,\ b是我失蹤的關鍵。我不知道如何同時匹配空白區域或括號。謝謝。 – 2013-02-12 14:16:09