正则表达式在python中检查字符串是否有后跟单位的数字,并对其进行修改

2024-04-25 06:25:37 发布

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

我正在尝试清理一些数据,包括“6cm*8cm”、“6cmx8cm”和“6*8”等文本。我想修改它们,使它们变得相似。请注意,数字是可变的,因此数据可能有“3cm*4cm”等

# input strings
strings = [
    "6cm*8cm",
    "12mmx15mm",
    'Device stemmer 2mm*8mm',
    'Device stemming 2mmx8mm'
]
# My desired output would be:
desired_strings = [
    '6*8',
    '12*15',
    'Device stemmer 2*8',
    'Device stemming 2*8'
]

我正在使用python的“re”。我的偏好是将它们转换为简单的“6*8”(即数字*数字)。请注意,在一些条目中,数据包含诸如“Device stemmer 2mm*8mm”之类的字符串,我不想更改其他单词

正则表达式是否有一种pythonic的方式来修改所有可能的数字和单位组合


Tags: 数据文本reinputoutputmydevice条目
1条回答
网友
1楼 · 发布于 2024-04-25 06:25:37

我用过:

import re

strings = [
    "6cm*8cm",
    "12mmx15mm",
    'Device stemmer 2mm*8mm',
    'Device stemming 2mmx8mm'
]

for i in strings:
    result = re.sub(r"([0-9]+)(cm|mm)(\*|x)([0-9]+)(cm|mm)", r"\1*\4", i)
    print(result)

注:
([0-9]+):匹配数字,
(cm|mm):匹配单元,|表示逻辑OR
(\*|x):匹配\*x作为对的分隔符,
\1:给出第一个组(这里是第一个数字,例如6),
\4:给出第四组(这里是第二个数字,例如8)

https://regex101.com/这个answer有帮助

相关问题 更多 >