gpt4 book ai didi

javascript - 一行正则表达式,匹配所有由空格分隔的单词

转载 作者:行者123 更新时间:2023-12-01 00:33:31 25 4
gpt4 key购买 nike

我正在尝试创建一个正则表达式,可以将上面的整个行匹配到单独的组中:

示例消息:2019-10-07 11:13:19.75   New York   America   INFO Server is connected. Server Id [34] Address [127.0.0.1:54266]

编辑:这些组由多个空格字符分隔,至少 2 个空格字符,但通常为 3 个。

编辑2:消息部分中的括号内的术语可能根本不会出现,或者一个可能出现而不出现另一个,或者它们可能以不同的顺序出现。

组1:2019-10-07 11:13:19.75

组2:New York

组3:America

组4:INFO

组5:Server is connected. Server Id [34] Address [127.0.0.1:54266]

我还尝试选择方括号 ([ ]) 内的任何内容以及 IP 地址的特殊匹配情况。但这不必包含在同一个正则表达式中。但如果可以的话那就太好了。

我已经能够匹配各个组,但我似乎无法在一行中完成所有操作。

这是我到目前为止所拥有的:

组1:/[0-9]{4}-[0-9]{2}-[0-9]{2}\s[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{2}/

组2:/(?<=\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}\.\d{2}.*)\S+/

组3:/(?<=\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}\.\d{2}.*\S.\s{3}).?\S+/

组4:/(?<=\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}\.\d{2}(.*\S.\s{3}){2}).?\S+/

组5:/(?<=\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}\.\d{2}(.*\S.\s{3}){3}).*/

任何帮助将不胜感激。

最佳答案

我认为 Liam 和 Thomas 是对的,只是被 \s+ 分开。并 trim 值。

但我很好奇如何正则表达式......

试试这个怪物:
(?<date>\d{4}-\d{2}-\d{2})\s+(?<time>\d{2}:\d{2}:\d{2}\.\d{2})\s+(?<city>(?:\S|\s(?!\s))*)\s+(?<country>(?:\S|\s(?!\s))*)\s+(?<level>INFO|WARN|ERROR)\s+(?<message>[^\[]+\[(?<serverid>\d+)\][^\[]+\[(?<serverip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,5})\])

此处:regex101

关于javascript - 一行正则表达式,匹配所有由空格分隔的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58324882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com