如何使用正则表达式在python中解析此字符串?

时间:2018-02-22 20:00:12

标签: python regex string-parsing

我在python中有以下字符串:

 [\d:]+ (.)*

我希望在时间字段之后捕获文本,即" python run.py abc"

我正在使用以下正则表达式,但它无效

{{1}}

4 个答案:

答案 0 :(得分:3)

您可以使用

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

请参阅regex demo

<强>详情

  • \d+ - 一位或多位
  • : - 冒号
  • \d+ - 一位或多位
  • \s+ - 一个或多个空白字符
  • (.*) - 第1组(您需要使用.group(1)访问的值):除了换行符之外的任何0 +字符,尽可能多(字符串的所有其余部分)。< / LI>

请参阅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

答案 1 :(得分:1)

使用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

答案 2 :(得分:1)

没有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

答案 3 :(得分:1)

您可以使用re.split和正则表达式:\d{2}:\d{2}\s+

text = 'vagrant  11450  4344  0 Feb22 pts/2    00:00:28 python run.py abc'
str = re.split(r':\d{2}:\d{2}\s+', text)[1]

输出:python run.py abc

Code demo