我的内容带有<del></del>
和<ins></ins>
标记。我有一个正则表达式,可以满足图片中清楚说明的条件
http://i.stack.imgur.com/8iNWl.png
满足条件的正则表达式是
https://regex101.com/r/cE4mE3/19
这个正则表达式工作得很好。但是,当内容更多或匹配内容很长时,执行时间会增加,因此会引发超时错误,该错误可在regex101.com/r/cE4mE3/20中看到
如何简化正则表达式(\w*(?:(?:(?:<del\b[^>]*>(?:(?!<\/del>).)*<\/del>)|(?:<ins\b[^>]*>\w+<\/ins>)|(?:\w+<\/ins>)|(?:<ins\b[^>]*>\w+))(?:\w+|))+)
以避免引发超时错误
最佳答案
正则表达式不是执行此操作的正确方法。您自己发现了一个陷阱。
将会有更多。因此请切换到DOM解析器。要消除超时问题,您可以尝试
((?=(\w*))\2(?:(?:(?:<del\b[^>]*>(?:(?!<\/del>).)*<\/del>)|(?:<ins\b[^>]*>\w+<\/ins>)|(?:\w+<\/ins>)|(?:<ins\b[^>]*>\w+))(?:\w+|))+)
参见演示。
https://regex101.com/r/cE4mE3/24
关于javascript - 正则表达式超时错误jQuery/JavaScript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38834868/