2016-09-12 34 views
0

我有以下可能的文本字符串:無法得到這個正則表達式 - [pbrc:tl:[^]] * ad * ] - 工作?

[pbrc:tl:ad,xch] 
[pbrc:tl:xch,ad,xyy] 
[pbrc:tl:xch, xx, ad] 

我需要確保「PBRC:TL:」和「廣告」(冒號後面,地方,但之前的「]」搜索所有的。上面的例子應該返回true。我目前使用下面的正則表達式這是失敗的。

\[pbrc:tl:[^]]*ad*\] 

我將不勝感激修正我的正則表達式。

預先感謝您。

編輯

這些都需要返回false:

[pbrc:st:ad] 
[pbrc:tl:abc] 

我會檢查這是否是提供的解決方案實現。首先我不相信。

+1

['\ [PBRC:TL:?*?*廣告\]'](https://regex101.com/r/rK8mA8/ 1)**編輯:**這隻適用於給定的輸入。 – Tushar

回答

4

您的ad*匹配a和零個或多個d符號。你需要讓最終]之前在任意數量比]其他字符的,因此,替換最後一個*[^]]*

\[pbrc:tl:[^]]*ad[^]]*] 
       ^^^^^ 

regex demo

圖案的詳細資料

  • \[ - 字面意思[
  • pbrc:tl: - 文字文本pbrc:tl:
  • [^]]* - 比](在一些正則表達式香料,所述]內部必須轉義,例如其它的零個或多個字符在JavaScript中,或ICU)
  • ad - 文字文本ad
  • [^]]* - 零個或多個字符以外]
  • ] -a文字](可能逃脫,在大多數語言,它不需要逃避時在角色等級之外)。
0

你錯過後廣告

\[pbrc:tl:[^]]*ad[^]]*\] 
相關問題