|
1
10
|
|
|
2
2
正则表达式。Replace()方法的开销远高于String.Replace()方法。尽可能使用String.Replace(),必要时使用Regex。 benchmark 看看时差。 |
|
|
3
2
如果性能是一个问题,那么正则表达式对于简单的替换来说可能会非常消耗cpu。(正则表达式在复杂的搜索/转换中通常比一系列“更简单”的调用更有效)。
|
|
4
1
但在许多情况下,事情并没有那么简单。有时,您会遇到可以使用标准字符串操作的情况,而正则表达式解决方案更优雅。即使vanilla字符串算法的速度快了10倍,问问自己它在特定代码中是否重要总是一个好主意(例如,如果代码没有在循环中执行)。 我更喜欢简单正则表达式操作的可读性,而不是使用纯字符串操作的更复杂但更快的算法。 只有我的2美分。.. |
|
|
5
0
我倾向于认为,如果作为字符串类的一部分,有一个专用函数可以按照你想要的方式操纵字符串,那么它应该非常接近“好”,因为正则表达式是通用的。 但与任何主观的东西一样,如果你关心的是表现时间的不同方法。 然后再做最容易理解的事情,并进行性能监控,以找出真正的瓶颈。 |
|
|
6
0
以下是Golang中的基准数字,我试图替换3个子字符串。 基准 替换 2. 236 ns/op 基准 替换 5. ns/op 基准 替换 ns/op 基准 正则表达式 2. ns/op 基准 正则表达式 4457 ns/op 基准 正则表达式 10 --- ns/op 正如您所看到的,如果您要替换已知的子字符串,那么Replace比Regexp要好得多。 但如果你必须匹配未知的字符串或模式,那么正则表达式可能会更好。 |
|
|
DotFX · RegEx捕获关键字前但括号后的所有内容 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |
|
|
iato · 确保正则表达式不从命名材料中的数字中提取 1 年前 |
|
|
vr8ce · 非成对标记中特定字符的正则表达式 1 年前 |
|
|
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 1 年前 |
|
|
Carsten · 使用最近的搜索模式更改文本块 1 年前 |