繁体   English   中英

使用python正则表达式从字符串中提取单词

[英]Extract word from string Using python regex

我想从字符串中提取型号,

/dev/sda:

ATA device, with non-removable media
    Model Number:       ST500DM002-1BD142                       
    Serial Number:      W2AQHKME
    Firmware Revision:  KC45    
    Transport:          Serial, SATA Rev 3.0

我写的正则表达式

re.search("Model Number:(\s+[\w+^\w|d]\n\t*)", str)

但问题是,它与字符串str中的任何特殊字符(非ascii)都不匹配

Python 2.6

注意:字符串可以是任何字符/数字的组合(包括特殊字符)

您的正则表达式将是

Model Number:\s*([\w-]+)

Python代码是

>>> import re
>>> s = """
... 
... /dev/sda:
... 
... ATA device, with non-removable media
...     Model Number:       ST500DM002-1BD142                       
...     Serial Number:      W2AQHKME
...     Firmware Revision:  KC45    
...     Transport:          Serial, SATA Rev 3.0"""
>>> m = re.search(r'Model Number:\s*([^\n]+)', s)
>>> m.group(1)
'ST500DM002-1BD142'

说明:

  • Model Number:\\s*与字符串“ Model Number:匹配,后跟零个或多个空格。
  • ([^\\n]+)一次或多次捕获任何字符,但不捕获换行符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM