python - 匹配字符串中的多个组

标签 python regex

我有一个类似'testname=ns,mem=2G'的字符串

解析上面的字符串后我想要 将变量 tstnm 分配给 ns 并将变量 memory 分配给 2G

import re
str = "testname=ns,mem=2G"

b = re.search('(?<=testname=)\w+', str)
m = re.search('(?<=mem=)\w+', str)
if b:
     tstnm = b.group(0)
if m:
     memory = m.group(0)

这行得通,但是当我尝试一次性完成时,比如 -

m = re.search('(?<=testname=)(\w+)\,(?<=mem=)(\w+)', str)

mNone//

最佳答案

使用 re.findall(),您可以使用 pipe(|) 合并您的正则表达式:

>>> s = "testname=ns,mem=2G"
>>> re.findall('(?<=testname=)\w+|(?<=mem=)\w+', s)
['ns', '2G']

不要使用str 作为变量名。

关于python - 匹配字符串中的多个组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18974941/

相关文章:

php - 在 mysql 中选择一个以单词开头的句子,而不是后面跟着另一个单词

正则表达式强制特定正则表达式的长度

python - 在python中手动排序10个整数的列表

python - 如何在 Django REST 中序列化层次关系

python - 尝试在 OSX El Capitan 上初始化服务器后 Django 挂起

ruby - 在 ruby​​ 中拆分句子的更好的正则表达式?

python - Mypy 错误 "Need more than 2 values to unpack (3 expected)"尽管使用了不同元组的并集

python - python 中的 ffill 作为链式方法和作为参数有什么区别?

java - 使用正则表达式分割不同长度的字符串

php - jenssegers/laravel-mongodb 正则表达式在不工作的地方