以下语句在python正则表达式中有什么用途?

以下语句在python正则表达式中有什么用途?,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我是python新手,需要使用现有的python脚本。有人能解释一下下面这句话的意思吗 pgre = re.compile("([^T]+)T([^\.]+)\.[^\s]+\s(\d+\.\d+):\s\[.+\]\s+(\d+)K->(\d+)K\((\d+)K\),\s(\d+\.\d+)\ssecs\]") 您需要查阅引用以了解正则表达式每个部分的确切含义,但其基本目的是解析GC日志。表达式()的每个括号部分都是一个组,与GC行的一个有用部分相匹配 例如,regex([^T]+)

我是python新手,需要使用现有的python脚本。有人能解释一下下面这句话的意思吗

pgre = re.compile("([^T]+)T([^\.]+)\.[^\s]+\s(\d+\.\d+):\s\[.+\]\s+(\d+)K->(\d+)K\((\d+)K\),\s(\d+\.\d+)\ssecs\]")

您需要查阅引用以了解正则表达式每个部分的确切含义,但其基本目的是解析GC日志。表达式
()
的每个括号部分都是一个组,与GC行的一个有用部分相匹配

例如,regex
([^T]+)T
的开头匹配第一个“T”之前的所有内容,分组部分返回“T”之前的文本,即日期“2013-08-28”

组的内容,
[^T]+
表示“至少有一个字符不是T”

方括号[]中的模式是字符类-有关详细信息,请参阅上述注释中的参考。请注意,您的输入文本包含文本方括号,因此模式将处理带有转义序列的文本-请参见下文

顺便说一句,我想你可以把
([^T]+)T
简化为
(.+)T

其他有用的子模式:

  • \s
    匹配空格
  • \d
    匹配数字
  • \。
    \(
    \[
    分别匹配文字句点、括号和方括号,而不是将它们解释为特殊的正则表达式字符

你有什么提示可以与之匹配的输入吗?
pgre
是如何使用的?另请看,正则表达式通常被认为是一种只写语言是有原因的。这是它正在读取的输入,2013-08-28T08:59:09.683-0500:6.055:[GC[PSYoungGen:131072K->19202K(152896K)]131072K->19274K(502464K),0.0357220秒][时间:用户=0.03系统=0.01,实际=0.03秒]这是GC AnalyzeZerok的python脚本,但我需要将脚本修改为GC的新格式,因此,如果我不知道当前实现了什么以及如何实现,我该怎么做?我认为您需要研究正则表达式引用,然后才能安全地修改脚本。已经给出的引用解释了您需要知道的所有内容。您的正则表达式loo现在输入的新格式是2014-02-21T04:41:08.601-0500:10.959:[GC2014-02-21T04:41:08.601-0500:10.959:[ParNew:1677824K->209663K(1887488K),0.9136870秒]1677824K->270291K(3984640K),0.9138940秒][次:user=0.89 sys=0.06,real=0.91秒]