首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正则表达式一个或多个vs n+1匹配

正则表达式一个或多个vs n+1匹配
EN

Stack Overflow用户
提问于 2017-05-29 09:20:35
回答 1查看 92关注 0票数 0

我发现我的go项目中的正则表达式替换速度非常慢,使用regexp.ReplaceAllLiteralString (re2)将\s+替换为单个空格。

它显然是用来折叠SVG中的空格的,不管这是不是一个好主意,当它更改为‘{2,}’时,操作的时间是原来的十分之一。

虽然使用\s vs‘’是一个公平的区别-但这是有意义的,它是比较的5倍。但是为什么当使用单个空格和+时,它比使用{2,}慢9倍?

EN

回答 1

Stack Overflow用户

发布于 2017-05-29 09:54:07

X+的意思是“X的每个实例都出现一次或多次”,这意味着它等同于{1,}。您正在替换(单个空白),使用\s+时也是如此。

对于SVG文档或任何XML文档而言,使用\s+肯定会很慢。以下文档将需要5个替换,忽略换行符序列:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<element attr1="value" attr2="value" attr3="value"/>

现在想象一个复杂得多的SVG文档,像\s{2,}这样的东西会比\s+快得多也是合理的。\s{1,})!如果你使用\s{2,},在上面的文档中将会有0个替换!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44233520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档