Regex 正则表达式:捕获数字字符后的所有内容,并在特定字符处停止
我的留言Regex 正则表达式:捕获数字字符后的所有内容,并在特定字符处停止,regex,Regex,我的留言[06/Oct/2020:17:44:24+0200] 我想要的信息 日期为2020年10月6日 时间17:44:24 日期及其返回的我的模式^[^::::*[06/Oct/2020 模式无法删除日期的[字符正则表达式: (?<=\[)([^:]*) 组\1包含日期,组\2包含时间 测试。日期的正则表达式: (?<=\[)([^:]*) 组\1包含日期,组\2包含时间 测试。使用^[^::::*重复匹配除:之外的任何字符,因此也将匹配前导的[ 您可以使用2个捕获组,并指定
[06/Oct/2020:17:44:24+0200]
我想要的信息
17:44:24
^[^::::*
[06/Oct/2020
模式无法删除日期的[
字符正则表达式:
(?<=\[)([^:]*)
组\1
包含日期,组\2
包含时间
测试。日期的正则表达式:
(?<=\[)([^:]*)
组\1
包含日期,组\2
包含时间
测试。使用
^[^::::*
重复匹配除:
之外的任何字符,因此也将匹配前导的[
您可以使用2个捕获组,并指定与日期和时间相关的模式,使匹配更加具体
如果希望匹配位于字符串的开头,可以在模式前面加上^
\[((?:0[1-9]|[12]\d|3[01])/[A-Z][a-z]{2,}/(?:19|20)\d{2}):((?:[0-1]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])[^\][]*\]
匹配\[
[
Capturegroup 1(
匹配类似日期的模式(?:0[1-9]|[12]\d |[3[01])/[A-Z][A-Z]{2,}/(?:19 | 20)\d{2}
关闭第1组)
匹配但不捕获:
:
捕获第2组(
匹配类似时间的模式(?:[0-1]?[0-9]| 2[0-3]):[0-5][0-9]:[0-5][0-9]
关闭第2组)
匹配除[^\][*\]
和[
之外的任何字符,直到结束]
]
使用
^[^::::]*
重复匹配除:
之外的任何字符,因此也将匹配前导的[
您可以使用2个捕获组,并指定与日期和时间相关的模式,使匹配更加具体
如果希望匹配位于字符串的开头,可以在模式前面加上^
\[((?:0[1-9]|[12]\d|3[01])/[A-Z][a-z]{2,}/(?:19|20)\d{2}):((?:[0-1]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])[^\][]*\]
匹配\[
[
Capturegroup 1(
匹配类似日期的模式(?:0[1-9]|[12]\d |[3[01])/[A-Z][A-Z]{2,}/(?:19 | 20)\d{2}
关闭第1组)
匹配但不捕获:
:
捕获第2组(
匹配类似时间的模式(?:[0-1]?[0-9]| 2[0-3]):[0-5][0-9]:[0-5][0-9]
关闭第2组)
匹配除[^\][*\]
和[
之外的任何字符,直到结束]
]
什么是正则表达式风格?@dawg不太确定,但我将使用Logstash中的模式,Grok filterIn PCRE,您可以使用在大多数现代正则表达式风格中工作的
\[([^:]*):([^]*)
。您需要匹配[
为了跳过它。为了匹配它,你需要避开它,这是你的问题。@BTH.S3有与logstash和grok相关的标记。@BTH.S3给出的答案有用吗?什么正则表达式味道?@dawg不是很确定,但我将使用logstash中的模式,grok filterIn PCRE,你可以使用\[([^:]*):([^]*)
适用于大多数现代正则表达式。您需要匹配[
以跳过它。要匹配它,您需要避开它,这是您的问题。@BTH.S3有与logstash和grok相关的标签。@BTH.S3给出的答案有用吗?