首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式优化

正则表达式优化
EN

Stack Overflow用户
提问于 2020-12-18 15:58:35
回答 1查看 35关注 0票数 0

使用下面的regex语句的最佳方式是什么?

代码语言:javascript
复制
\\t(?P<event_code>47(2[0-9]|3[0-5]|3[7-8]|([4-5][0-9]|6[1-2]|6[4-7])|8[0-1]|8[3-9]|9[0|4])|537[6|7])\\

我正在搜索windows事件日志中的某些事件编号:

代码语言:javascript
复制
4720-4735
4737-4738
4740-4762
4764-4767
4780-4781
4783-4790
4794
5376-5377

在字符串中,它们用/t/括起来,结果必须不超过4位。

下面是我要搜索的文本的一个示例:

代码语言:javascript
复制
17 Nov 2020 15:24:07.809{
  "timestamp": "2020-11-17T03:24:06.000Z",
  "source_user": "source user",
  "target_user": "traget user",
  "source_user_domain": "source.domain",
  "target_user_domain": "destination.domain",
  "action": "PASSWORD_RESET",
  "source_account": "source account",
  "target_account": "target account",
  "source_data": "<14>Nov 17 05:24:06 domain controller MSWinEventLog\t1\tSecurity\t3257313\tTue Nov 17 05:24:06 2020\t4723\tMicrosoft-Windows-Security-Auditing\tN/A\tN/A\tSuccess Audit\tdomaincontroller\tUser Account Management\t\tAn attempt was made to reset an account's password.    Subject:   Security ID:  SID   Account Name:  account name   Account Domain:  account domain   Logon ID:  ID    Target Account:   Security ID:  SID   Account Name:  account name   Account Domain:  account domain"
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-18 16:18:10

很少有东西是可以重构的。

例如,可以将3[0-5]|3[7-8]简化为3[0-57-8]

请注意,9[0|4]的计算结果为9,后跟0|4

重构后的RegEx如下所示:

代码语言:javascript
复制
(47(2[0-9]|3[0-57-8]|[4-5][0-9]|6[1-24-7]|8[0-13-9]|9[04]))|(537[67])

demo

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

https://stackoverflow.com/questions/65353501

复制
相关文章

相似问题

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