2016-01-19 144 views
0

我在Java中有一個RegEx,似乎可以在包含內容的所有實例中工作,但它不僅僅是將實例與內容匹配;它也匹配空字符串。由於我匹配的數據,RegEx的所有「部分」必須是可選的,但是我不知道如何指定如果一個部分不存在,其他部分必須存在,反之亦然(大部分時候,這兩個部分都存在)。匹配模式,除非匹配是一個空字符串

我現在的正則表達式:(-?[0-9]*)(x\\^?([0-9]*))?

要重複,這是當它匹配現有的字符工作。我只是想阻止它匹配字符之間的空字符串,這是拋出我的方法的其餘部分。

編輯:特定的測試字符串我用: "4x^5+x^4+2x^3-16x^2+3x-1000"

+2

一些示例數據與正則表達式一起使用會很好。 –

+0

這個正則表達式會匹配'-','x','x ^','-0x^0' ......等等。那真的是你想要的嗎? – Andreas

+0

和你期望在每種​​情況下 – Szymon

回答

1

加入前瞻(?=[0-9x-])必須的東西從你的條件符合嘗試這種模式

(?=[0-9x-])((?:-?[0-9]*)(?:x\\^?(?:[0-9]*))?) 


Demo

+0

這有幫助,但在最後一次正確比賽後我仍然有空比賽。 – Imamadmad

+0

舉例說明! –

+0

我編輯我的帖子,包括我的測試字符串 – Imamadmad