【发布时间】:2014-07-22 10:45:36
【问题描述】:
我想从字符串中提取型号,
/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
注意:字符串可以是任意字符/数字(包括特殊字符)的组合
【问题讨论】:
-
这是 Python 2 还是 3?您能给我们提供哪些不匹配的示例输入?
-
@MartijnPieters Python 2.6
-
您的字符串是
unicode对象还是字节字符串? -
@MartijnPieters 我已经发布了上面的字符串。对不起,我不明白你在问什么
-
请注意,
[\w+^\w|d]不是一个分组,而是一个字符类。您正在匹配 一个 字符,该字符是集合\w、+、^、|或d的成员。