2015-11-03 65 views
0

我和我的同事的一個使用相同的正則表達式,但我們得到不同的結果和我們目前一無所知...正則表達式是supose找到任何與啓動(字節)的任何後續那不是(或)並且是跟隨+符號。我獲得了好的結果,但不是他。 我們都使用IntelliJ 14.1.14並在IntelliJ搜索引擎中使用正則表達式。 任何人都有經驗並解決它?同樣的正則表達式,但不同的計算機上不同的結果

正則表達式:

\(byte\)[^()]*\+ 

數據:

(byte)'a' + 1; 
(byte)'-'; 

我的結果:

(byte)'a' + 

他的結果:

(byte)'-'; 
+0

你正在使用什麼和他正在使用正則表達式庫 – DTSCode

+0

我們都使用IntelliJ搜索引擎 – ajanelle

+0

你們都在做自己的代碼,或者這就像你正在使用的源代碼控制中的文件?你確定一切都一樣嗎? – lintmouse

回答

0

IntelliJ支持多個SDK。例如,在付費版本中,除了Java,您可以使用Python插件(複製其PyCharm產品)。 regular expression engine將根據SDK being used而有所不同。

然而,SLN所示,你的表達:\(byte\)[^()]*\+永遠不會匹配文本(byte)'-';(無論所使用的引擎),因爲你的正則表達式任務有匹配的行以+符號,這是不符合的情況下結束自己的結果。

因此,我認爲他有他的表情裏的錯誤;它不是IntelliJ的問題,甚至是引擎的差異。您可能需要使用regex101網站進行進一步試驗。

有可能他沒有錯誤,並且文件編碼的不同導致了這種錯誤(儘管我不知道具體的不匹配會是什麼)。請嘗試確保您的文件都是using the same encoding,UTF -8是一個很好的默認值。

+0

@ajanelle對此有幫助嗎? – binarysubstrate

+0

這不是它,我們仍然沒有弄清楚哪些問題是我們嘗試在另一臺計算機上和它的工作......這是一個未知的原因,只有一臺電腦,由於這個問題。謝謝您的幫助和抱歉當我回應時,我離開了。我把你的答案作爲解決方案,以便它可以幫助某人,因爲它本來可以 – ajanelle

相關問題