2016-11-17 33 views
0

我需要一個正則表達式,將發現後面5個號碼要麼是匹配一個小寫的AZ字符:正則表達式搜索數字與字母組合的可選括號

  • 在一行的開始
  • 在一行
  • 由(環繞的端部)或[]
  • 由空白所包圍

所以下面的結果是人口會d:

A12345 MATCH

(A12345)MATCH

[A12345] MATCH

文本A12345 MATCH

aa12345敵不過

目前,我有這個(?<=[])]*)[a-z]{1}[0-9]{5}(?=[])]*)但它不適用於所有場景,例如,當我不希望它們出現時,它會將aa12345和a12345a視爲匹配項。

任何人都可以幫忙嗎?

編輯: 道歉我應該提到這是.NET C#

+0

約'[A12345)TEXT'什麼? –

回答

1

第一。

以下解決方案適用於PCRE

正則表達式:((?<=[\[(])|^)[a-z]\d{5}((?=[\]\) ])|$)

說明:

  1. ((?<=[\[(])|^)檢查前述括號,空格OR開始。

  2. [a-z]\d{5}檢查字母后跟5位數字。

  3. ((?=[\]\) ])|$)檢查後續括號,空格OR行尾。

Regex101 Demo

+0

感謝你,這是非常接近我想要的,我已經改變了這一點,似乎現在好了((?<= [ \ [(])| ^)[az] \ d {5}((?= [\] \)])| $) – NAJ

+0

@NAJ:你爲什麼不在**中轉義''['和']'? – Rahul

+0

對不起,看起來是編輯改變它的評論應該是這樣的:'((?<= [\ [(])| ^)[az] \ d {5}((?= [\] \)]) | $)' – NAJ

0

這是否工作:

所有你應該提到的編程語言
(\[[a-z]\d{5}\])|(\([a-z]\d{5}\))|(\b[a-z]\d{5}\b) 
+0

關閉,它包括在比賽中的括號,雖然我不想要 – NAJ

相關問題