Tag: regexp replace

JavaScript正则expression式缓慢与特殊字符

我花了两天的时间想弄清楚一些事情,如果有人能向我解释,我真的很感激。 编辑:我终于明白,这个问题不是因为下面的代码,而是来自一个库,我用来加载正则expression式,包xlsx。 如果我用另一种方式加载正则expression式,问题不会发生。 这个问题现在已经过时了,我把它作为参考。 我将分别发布特定于xlsx pakcage的问题 我有一个对象(约150K)的数组: [ {regexp: 'something (either|or) anything', res: 'result is: $1'}, {regexp: 'or something more complexe ….', res: '…'}, … ] 每个对象都包含两个属性:1. regexp:正则expression式来search2. res:要replace的文本 例如,可能是: 这是(好的)消息 结果是:$ 1 我用这个数组是这样的:提供一个inputstring,对于每个obj,我做一个replacestring function doSomethingOn(text) { regexpObjs.forEach(regexpObj => { text = text.replace(regexpObj.regexp, regexpObj.regexpRes); }); return text; }); 我注意到,我第一次运行doSomethingOn为一个string,这将需要“很长一段时间”。 我想这是运行时编译和caching正则expression式的时间。 然后任何进一步调用doSomethingOn与相同的string,或任何其他string将更快 我的问题和问题如下: – 如果现在作为一个inputstring,我使用一个特殊字符的string,如',“,»或«,等等…第一次将需要很长时间。 更糟糕的是,在某些情况下,下次运行doSomethingOn时,任何string都会崩溃,并显示“致命错误:CALL_AND_RETRY_LAST分配失败 […]

PostgreSQL返回失败与REGEXP_REPLACE

我正在运行PostgreSQL 9.4,并将大量logging插入到我的数据库中。 插入后,我使用RETURNING子句进一步使用。 当我简单地运行: … RETURNING my_car, brand, color, contact 一切正常,但如果我尝试使用REGEXP_REPLACE失败: … RETURNing my_car, brand, color, REGEXP_REPLACE(contact, '^(\+?|00)', '') AS contact 它失败: ERROR: invalid regular expression: quantifier operand invalid 如果我直接在PostgreSQL中直接运行查询,它可以工作并返回一个很好的输出。