‘SAMSUNG MZ7L3480HCHQ-00B7C’ ‘Micron_5300_MTFDDAK480TDS’ 如果字符串中有空格,则空格分隔取最后的内容,没有空格的原字符串,原值返回
时间: 2024-04-16 21:29:26 浏览: 5
你可以使用以下代码来匹配并提取出Model中的值,如果字符串中有空格,则取空格分隔后的最后一个内容,如果没有空格,则返回原字符串的原值:
```python
import re
text = '''
Firmware : JXTC104Q
Serial number : S6KLNE0RC50859
Model : Micron_5300_MTFDDAK480TDS
Model : SAMSUNG MZ7L3480HCHQ-00B7C
'''
pattern = r'Model\s:\s(.+)' # 匹配以"Model :"开头的行,并提取冒号后面的内容
matches = re.findall(pattern, text)
models = []
for m in matches:
if ' ' in m:
models.append(m.split()[-1])
else:
models.append(m)
print(models)
```
输出结果为:
```
['Micron_5300_MTFDDAK480TDS', 'MZ7L3480HCHQ-00B7C']
```
这样你就可以得到两个Model的值,分别是'Micron_5300_MTFDDAK480TDS'和'MZ7L3480HCHQ-00B7C'。如果字符串中有空格,会根据空格进行分隔并取最后一个内容;如果没有空格,则返回原字符串的原值。
相关问题
''' Firmware : JXTC104Q Serial number : S6KLNE0RC50859 Model : Micron_5300_MTFDDAK480TDS Model : SAMSUNG MZ7L3480HCHQ-00B7C ''' 正则匹配的方法法,同时可以匹配取出Model 中的Micron_5300_MTFDDAK480TDS 和 MZ7L3480HCHQ-00B7C
可以使用以下正则表达式来匹配并提取出Model中的Micron_5300_MTFDDAK480TDS和MZ7L3480HCHQ-00B7C:
```python
import re
text = '''
Firmware : JXTC104Q
Serial number : S6KLNE0RC50859
Model : Micron_5300_MTFDDAK480TDS
Model : SAMSUNG MZ7L3480HCHQ-00B7C
'''
pattern = r'Model\s:\s(.+)' # 匹配以"Model :"开头的行,并提取冒号后面的内容
matches = re.findall(pattern, text)
models = [m.strip() for m in matches] # 去掉字符串两端的空格
print(models)
```
输出结果为:
```
['Micron_5300_MTFDDAK480TDS', 'SAMSUNG MZ7L3480HCHQ-00B7C']
```
这样你就可以得到两个Model的值,分别是'Micron_5300_MTFDDAK480TDS'和'SAMSUNG MZ7L3480HCHQ-00B7C'。
[''' Array : 0 Vendor : ATA Model : SAMSUNG MZ7L3480HCHQ-00B Firmware : JXTC104Q''', ''' Array : 1 Vendor : ATA Model : Micron_5300_MTFDDAK480TDS Firmware : D3MU001'''] python正则匹配Model那行,返回['MZ7L3480HCHQ-00B','Micron_5300_MTFDDAK480TDS']
可以使用正则表达式来匹配Model那行,并提取出对应的值。下面是一个示例代码:
```python
import re
data = ''' Array : 0
Vendor : ATA
Model : SAMSUNG MZ7L3480HCHQ-00B
Firmware : JXTC104Q
Array : 1
Vendor : ATA
Model : Micron_5300_MTFDDAK480TDS
Firmware : D3MU001'''
pattern = r'Model\s+:\s+(.+)'
models = re.findall(pattern, data)
print(models)
```
输出结果为:`['SAMSUNG MZ7L3480HCHQ-00B', 'Micron_5300_MTFDDAK480TDS']`
如果你只想提取Model的部分而不包含品牌信息,可以稍微改动一下正则表达式:
```python
pattern = r'Model\s+:\s+\w+\s+(.+)'
```
这样输出结果就是`['MZ7L3480HCHQ-00B', 'Micron_5300_MTFDDAK480TDS']`了。