0

你有一个问题,决定使用正则解决,现在你有两个问题了?!

 1 year ago
source link: https://www.v2ex.com/t/876101
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

V2EX  ›  程序员

你有一个问题,决定使用正则解决,现在你有两个问题了?!

  jurassic2long · 3 小时 30 分钟前 · 1132 次点击

工作多年,每次使用正则表达式都要测试好几次才敢用。 大家来分享一下自己使用正则的技巧, 或者分享遇到的大坑,让大家乐呵乐呵~

14 条回复    2022-08-29 13:08:45 +08:00
BingoXuan

BingoXuan      3 小时 26 分钟前

复杂的匹配都是先匹配一次,把匹配结果再进行匹配
seers

seers      3 小时 25 分钟前 via Android

我能用逻辑判断的还是避免写正则,有时候自己写的过两个月自己都看不懂
murmur

murmur      3 小时 25 分钟前

能用库尽量用库,比如 html 标签过滤这些,有的时候正则写复杂需求就是想 shi
Kasumi20

Kasumi20      3 小时 19 分钟前

具体说说这个问题,我很好奇怎么变成两个问题的
loading

loading      3 小时 17 分钟前

除非有极致的性能要求(正则也不见得比很多 if 要快),或者非常简单或常见的情况,不然我一般不会用正则。

因为我还会遇到另外两个问题:
1.太久没用又要学一次,doge 。
2.没写注释,看不懂了。
lixinrui000

lixinrui000      3 小时 15 分钟前

我一般用 regex101 测试好再贴到代码里
jurassic2long

jurassic2long      3 小时 11 分钟前

@Kasumi20 第二个问题是:怎么用正则表示第一个问题。


@loading 太真实了,用一次学一次。


@seers
@murmur 我的需求一般是字符串格式判断和提取,最近一次忘了写非贪婪匹配的? 就悲剧了
nuk

nuk      1 小时 40 分钟前

正则主要就字符串匹配和捕捉,复杂一点的就用 lpeg ,好用到飞起。
HankAviator

HankAviator      52 分钟前 via Android

@loading 正则不是效率比较差吗
Cat7373

Cat7373      48 分钟前

正则很容易的🐶
imn1

imn1      34 分钟前

我发觉很多时候给别人答案是正则时,对方甚少接受的
正则我很常用,因为平常文件改名、搜索文件、搜索文本……就在用,最小的频率也不低于 1 次 /2 天,所以大部分都能读懂和手写


@HankAviator #12
跟纯 string 函数比,是效率低,但也是次数少的情况,但其他场景就不一定了
1. 要好几个甚至非常多字符串函数组合的情况
2. 需要泛匹配的情况
3. 数量巨大,例如十万或百万 html 匹配,用正则比 DOM 效率高很多

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK