关于芬德尔()附加标准

2024-10-01 09:20:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个零件号:

part_number = '18-TX25-37 DMDFC PS'

当我这么做的时候

^{pr2}$

某些部件号可能有一个点,如'18-TX25-37.25 DMDFC PS',而我的regex返回'37''25'等等。如何使它不在点处拆分,并返回{}以及所有其他值?在


Tags: number部件regexpspartpr2tx25dmdfc
1条回答
网友
1楼 · 发布于 2024-10-01 09:20:25

\wcharacter class,它是[a-zA-Z0-9_](即:字母、数字和下划线)的快捷方式。换句话说,正则表达式正在搜索包含一个或多个(字母、数字或下划线)的所有组。当然,当regex引擎在字符串中看到.时,它不会将其作为前一个匹配的一部分包含进来。在

如果要将.包含为有效字符,则需要显式执行以下操作:

>>> import re
>>> part_number = '18-TX25-37.25 DMDFC PS'
>>> re.findall(r"[\w.]+", part_number)
['18', 'TX25', '37.25', 'DMDFC', 'PS']

这表示“匹配一个或多个(字母、数字、下划线或点)的所有组”。在

微妙之处:.是regex中的一个特殊字符,与任意一个字符匹配。你不需要在这里转义,因为它在一个字符类内(在[]之间),但是如果你要在这样的类之外使用它,你需要在它前面加一个反斜杠。在

相关问题 更多 >