2010-03-02 114 views
0

我想知道在MATLAB的REGEXP函數中可以使用多長的表達式字符串?例如列出許多要匹配的單詞,如'abc|defg|hij|...'正則表達式中的最大表達式字符串長度(MATLAB)

工作很好,約500字(~3K字符),但列表非常大(> 300K)MATLAB剛崩潰,沒有任何錯誤日誌。任何人都有限制的想法?它可能依賴於表達式語法?

我知道我可以使用單元格數組的字符串,但在這種情況下,我不能使用任意數量的字符串進行匹配。無論如何,我不需要替代品,只需要限制。

回答

1

這可能是由於內存限制,您可以使用java.opts增加Java內存。搜索java.opts和matlab以瞭解如何增加工作內存大小。

雖然,我不相信這是正則表達式的預期用途。

最大長度取決於平臺。詳細信息請參見here

+1

同意。 *理論*限制可能是持有正則表達式的字符串的大小,但這是沒有實際意義的。使用這樣的正則表達式只是一個非常糟糕的主意。 – 2010-03-02 22:55:00

+0

在我32位XP的老機器上,我可以創建5e7字符的字符串(內存爲100Mb)。儘管正則表達式使用表達式字符串〜1e6字符串(在將字符串成功存儲在內存中後)崩潰。所以看起來不僅僅是內存問題,而是正則表達式的實現,它在運行時如何使用內存。我同意這不是正則表達式的最佳用法,更多的學術興趣。 – yuk 2010-03-03 03:01:36

相關問題