使用正则表达式在具有整数值的字符串中的引号中查找值
use regex to find value in quotes in the string with an integer value
我有一个字符串:
Started by upstream project "fcm-dummy-web" build number 99
originally caused by:
Started by user Kaul, Kuber
[EnvInject] - Loading node environment variables.
Building on master in workspace /var/lib/jenkins/jobs/mischief-managed/workspace
> /usr/bin/git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> /usr/bin/git config remote.origin.url
Fetching upstream changes from https://xx/kaulk/mischief-managed.git
> /usr/bin/git --version # timeout=10
using GIT_SSH to set credentials
我需要在第一行找到作业名称,在本例中为 "fcm-dummy-web" 和内部版本号“99”。现在这些可能会因不同的工作而在不同的构建中发生变化,但在所有情况下,第一行将以 "Started by upstream project" 开头,然后是 "build number" 后跟值。找到它的正则表达式是什么?
我正在尝试:matches=re.findall(r"^Started by upstream project .*$", text) 但没有成功。
您可以这样搜索:
import re
text = '''
Started by upstream project "fcm-dummy-web" build number 99
originally caused by:
Started by user Kaul, Kuber
'''
m = re.search(r'Started by upstream project "([^"]+)" build number (\d+)', text)
print("project = %s, build number %d" % (m.group(1), int(m.group(2))))
re.findall('^Started by upstream project "(.+)" build number (\d+)')
只要在正则表达式中使用锚点,就使用多行修饰符 m
。
>>> re.findall(r'(?m)^Started by upstream project\s+"([^"]*)"\s+build number\s+(\d+)', s)
[('fcm-dummy-web', '99')]
re.findall('^由上游项目启动 ("[^"]+")\s+build number\s+([\d]+)$)
它匹配两组。第一组为项目名称,第二组为内部版本号
我有一个字符串:
Started by upstream project "fcm-dummy-web" build number 99
originally caused by:
Started by user Kaul, Kuber
[EnvInject] - Loading node environment variables.
Building on master in workspace /var/lib/jenkins/jobs/mischief-managed/workspace
> /usr/bin/git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> /usr/bin/git config remote.origin.url
Fetching upstream changes from https://xx/kaulk/mischief-managed.git
> /usr/bin/git --version # timeout=10
using GIT_SSH to set credentials
我需要在第一行找到作业名称,在本例中为 "fcm-dummy-web" 和内部版本号“99”。现在这些可能会因不同的工作而在不同的构建中发生变化,但在所有情况下,第一行将以 "Started by upstream project" 开头,然后是 "build number" 后跟值。找到它的正则表达式是什么?
我正在尝试:matches=re.findall(r"^Started by upstream project .*$", text) 但没有成功。
您可以这样搜索:
import re
text = '''
Started by upstream project "fcm-dummy-web" build number 99
originally caused by:
Started by user Kaul, Kuber
'''
m = re.search(r'Started by upstream project "([^"]+)" build number (\d+)', text)
print("project = %s, build number %d" % (m.group(1), int(m.group(2))))
re.findall('^Started by upstream project "(.+)" build number (\d+)')
只要在正则表达式中使用锚点,就使用多行修饰符 m
。
>>> re.findall(r'(?m)^Started by upstream project\s+"([^"]*)"\s+build number\s+(\d+)', s)
[('fcm-dummy-web', '99')]
re.findall('^由上游项目启动 ("[^"]+")\s+build number\s+([\d]+)$) 它匹配两组。第一组为项目名称,第二组为内部版本号