![]() |
1
3
正则表达式是 greedy 默认情况下(至少为pcres)。通常你可以绕过这个:
在你的例子中,这没有多大帮助,因为你不能只在某个地方投一个问号。唯一的可能是
重新排序
你的搜索阵列和即时
代替
找到的地方。搜索
第一
对于
另一种可能性: 将搜索数组分成两部分。如果您知道,那个总是有结构的:'加上数字,您可以在第二个循环中使用regexp,就像
具有
还有第三个: 如果只允许(=convert)在某些地方使用笑脸,则可以使用此选项:
|
![]() |
2
4
对于每个微笑代码,您的代码都会计算该代码在日志中出现的次数,因此“s:10”会同时计算为“s:10”和“s:1”。 一个解决方案是一次查找所有的微笑代码,这样每一篇文章都只对一个微笑代码计数。这可以通过将所有代码组合成一个regex来完成。
|
![]() |
3
1
我可以想象这个代码比regex更快
这不能解决问题
另外,我建议无论如何不要使用数字标识符。用户可能会觉得记住它们很乏味。为什么不使用易于记忆的标签,例如
|
![]() |
4
0
你可以改变你的正则表达式来使用
word boundaries
或\s(空白)匹配,所以
|
![]() |
5
0
将“s:1”更改为“s:1[^0-9]”—与任何“s:1”匹配,后面不跟其他数字。 |
![]() |
lonix · 使用sed从JSON中提取非贪婪正则表达式 1 年前 |
![]() |
Dima Malko · 如何在指定符号前添加符号? 2 年前 |
![]() |
shekharsabale · 从列表元素捕获子字符串 2 年前 |
![]() |
Katia · 根据特定规则进行多行匹配 2 年前 |
![]() |
MHA · Pandas str.extract()以字母结尾的数字 2 年前 |
![]() |
Slava Vir · 如何查找后面“/”之间的最后一组 2 年前 |