2017-02-16 43 views
3

正則表達式零到n和零,我想爲搜索到一個

  • 零字符串解析到一個字符
  • 的許多事件後跟零個或一個occurence另一個字符的

有效例子(X =任何其它字符(一個或多個),但A或B,在這一點上沒有數字濾波)

xAxBx 
xAxAxBx 
x 
xB 
xBx 

無效實例

xBxAx 
xAxBxAx 
xAxBxBx 
Ax 
A 

「東西」隨後「的東西包含零個或多個‘A’的」後跟B「‘’含有零個或一個東西」。

背景是數字格式的一些自動檢測(零或一些組分隔後跟零個或一個小數點,我知道我必須逃脫點或空間爲A或B)

我玩弄在http://regexr.com/,但我還沒有得到它到目前爲止...

更新(2)

試圖更好/更短形容我的模式:

  • 東西除了A或B
  • 重複:A,接着爲除A某事或B
  • 沒有或有一個B,接着爲除A某事或什麼

所以字符串可能爲B結束,但不會開始與A或B和沒有A應當遵循由A或B.

更新(3)

隨着圖案

^[^AB]+(A[^AB]*)*(B[^AB]*)?$ 
  • 字符串可以與A結束(如在xxxAxxAAAxxxAxxxxA)
  • 多個A可以站在一起(也像在xxxAxxAAAxxxAxxxxA)

圖案作品關於

  • 沒有A或B開頭
  • 只有一個B之後作爲

(在http://regexr.com/測試)

+1

那麼,究竟是什麼在regexr.com最接近的嘗試? –

+1

你想要一個真/假結果還是提取這些字符?你確定你需要/想要RegEx嗎? –

+0

只是真/假,它是在深入探索字符串之前進行快速預先檢查(支持較老的內部API)。當前的嘗試 「([^ AB] * [A *])」 爲 「東西后跟零個或多個爲」 – Gunnar

回答

2
//"^[^AB]+(A[^AB]*)*(B[^AB]*)*$" 
//"^[^AB]+(A[^AB]*)*(B[^AB]*)?$" 
    "^[^AB]+(A[^AB]+)*(B[^AB]*)?$" 
+0

謝謝。但根據http://regexr.com/多B可能。我會盡力在問題中更好地描述我的模式。 – Gunnar

+0

更正後,使用'?'替代最後一個組的'*'。 –

+0

謝謝。我仍然需要用模式反映我的問題更新,但這是一個很好的模板。如果沒有「完美模式」出現在另一個答案中,我會在今天(下午1:15)恭喜你:-) – Gunnar