2024-10-01 09:20:25 发布
网友
我有这样一个零件号:
part_number = '18-TX25-37 DMDFC PS'
当我这么做的时候
某些部件号可能有一个点,如'18-TX25-37.25 DMDFC PS',而我的regex返回'37','25'等等。如何使它不在点处拆分,并返回{}以及所有其他值?在
'18-TX25-37.25 DMDFC PS'
'37'
'25'
\w是character class,它是[a-zA-Z0-9_](即:字母、数字和下划线)的快捷方式。换句话说,正则表达式正在搜索包含一个或多个(字母、数字或下划线)的所有组。当然,当regex引擎在字符串中看到.时,它不会将其作为前一个匹配的一部分包含进来。在
\w
[a-zA-Z0-9_]
.
如果要将.包含为有效字符,则需要显式执行以下操作:
>>> import re >>> part_number = '18-TX25-37.25 DMDFC PS' >>> re.findall(r"[\w.]+", part_number) ['18', 'TX25', '37.25', 'DMDFC', 'PS']
这表示“匹配一个或多个(字母、数字、下划线或点)的所有组”。在
微妙之处:.是regex中的一个特殊字符,与任意一个字符匹配。你不需要在这里转义,因为它在一个字符类内(在[]之间),但是如果你要在这样的类之外使用它,你需要在它前面加一个反斜杠。在
[]
\w
是character class,它是[a-zA-Z0-9_]
(即:字母、数字和下划线)的快捷方式。换句话说,正则表达式正在搜索包含一个或多个(字母、数字或下划线)的所有组。当然,当regex引擎在字符串中看到.
时,它不会将其作为前一个匹配的一部分包含进来。在如果要将
.
包含为有效字符,则需要显式执行以下操作:这表示“匹配一个或多个(字母、数字、下划线或点)的所有组”。在
微妙之处:
.
是regex中的一个特殊字符,与任意一个字符匹配。你不需要在这里转义,因为它在一个字符类内(在[]
之间),但是如果你要在这样的类之外使用它,你需要在它前面加一个反斜杠。在相关问题 更多 >
编程相关推荐