python匹配字符串与正则表达式一致并获得特定值

时间:2017-12-01 17:38:52

标签: python regex

我有以下内容,它是日志文件中一行的一部分

-FDH-11 TIP: - 146/S Q: 48

我想与正则表达式匹配。有没有办法在上面的输入中获得Q的值。我不确定-FDH-和Q:之间的长度总是一样的。理想情况下,如果我找到-FDH-和Q:那么得到Q的值。

2 个答案:

答案 0 :(得分:3)

代码

See regex in use here

-FDH-.*?\bQ:\s*(\S+)

说明

  • -FDH-按字面意思匹配
  • .*?任意次数匹配任何字符,但尽可能少
  • \b断言位置为单词边界
  • Q:按字面意思匹配
  • \s*匹配任意数量的空白字符
  • (\S+)将一个或多个非空白字符捕获到捕获组1

答案 1 :(得分:0)

您可能不需要为此使用正则表达式。如果只有一个" Q:"在字符串中,然后您可以将其拆分并使用以下内容获取值:

str = "-FDH-11 TIP: - 146/S Q: 48"
parts = str.split("Q: ")
q_value = parts[1]