如何使用regex在python中解析这个字符串?

2024-04-24 09:38:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python中有以下字符串:

text = "vagrant  11450  4344  0 Feb22 pts/2    00:00:28 python run.py abc"

我想捕获时间字段后的文本,即“python”运行.py“abc”

我正在使用下面的正则表达式,但它不起作用

 [\d:]+ (.)*

Tags: run字符串textpy文本时间ptsabc
3条回答

你可以用

\d+:\d+\s+(.*)

参见regex demo。你知道吗

细节

  • \d+-1个或更多数字
  • :-冒号
  • \d+-1个或更多数字
  • \s+-1个或多个空格字符
  • (.*)-group1(您需要使用.group(1)访问的值):除换行符以外的任何0+字符,尽可能多(行的所有其余部分)。你知道吗

参见Python demo

import re
text = "vagrant  11450  4344  0 Feb22 pts/2    00:00:28 python run.py abc"
m = re.search(r'\d+:\d+\s+(.*)', text)
if m:
    print(m.group(1)) # => python run.py abc

无RE:

text = "vagrant  11450  4344  0 Feb22 pts/2    00:00:28 python run.py abc"
text=text.split(":")[-1][3:]

输出:

python run.py abc

使用re.search()函数:

import re

text = "vagrant  11450  4344  0 Feb22 pts/2    00:00:28 python run.py abc"
result = re.search(r'(?<=(\d{2}:){2}\d{2} ).*', text).group()

print(result)

输出:

python run.py abc

相关问题 更多 >