RegexpError:regexp匹配器中的堆栈溢出
我有一个简单的tokenizer正则表达式的小问题:
def test_tokenizer_regex_limit string = 'a
' * 400 tokens = string.scan(/()|((?:[^<]|\))+)/) end
基本上它贯穿文本并获得[matched_tag,other_text]对。 这是一个例子: http : //rubular.com/r/f88JBjfzFh
适用于较小的套装。 如果你在ruby1.8.7下跑,它会爆炸。 1.9.2工作正常。
有任何想法如何简化/改进这个? 我的正则表达式很弱
这有点简化但不多:
(<[^<]*:[^<]*>)|((?:[^<]|<[^:]*>)+)
(<*。?> | [^ <>] +)