我有以下代码的输出,从那个输出我需要得到那个值的maj和次要。有什么方法我只得到前两个数字4.4不是全值4.4.73.4
for version in issue["fields"]["fixVersions"]:
cacheData = json.dumps(version)
jsonToPython = json.loads(cacheData)
#lines = jsonToPython.items()
if jsonToPython['name'][:8] == "Ciagana ":
matches = re.findall(r"\d+\.\d+\.\d+\.\d+", jsonToPython['name'])
print matches[0]
以下是当前代码的输出:
Retrieving list of issues
Processing CTPT-2
4.4.73.4
4.4.90.0
Processing CTPT-1
4.5.73.4
以下是所需的输出
Retrieving list of issues
Processing CTPT-2
4.4
4.4
Processing CTPT-1
4.5
答案 0 :(得分:4)
正则表达式可行,或简单拆分:
short_version_string = '.'.join(version_string.split('.')[:2])
或者这个,虽然它只适用于Python 3:
major, minor, *_ = version_string.split('.')
答案 1 :(得分:2)
另一种方法是,修改你的正则表达式模式以预测另一个时期:
text = ['4.4.73.4', '4.4.90.0', '4.5.73.4']
for version in text:
matches = re.findall(r"\d+\.\d+(?=\.)", version)
print matches[0]
#4.4
#4.4
#4.5
模式是:
\d+\.\d+
:任意数字后跟一个句点后跟任意位数(?=\.)
:另一段时间的非捕捉前瞻