我正在尝试创建将使用12X15x2这样的模式的函数,并从字符串中提取它,如下所示:“ STACKED STONE 52X36X72 AREAWELL BOMAN KEMP” 因此,模式是绞盘尺寸通常是一个或多个数字,“ X”比“ X”多一个或多个数字,并以一个或多个数字结束。
这是我尝试过的:
# Importing dependencies
import pandas as pd
from pandas import ExcelWriter
from pandas import ExcelFile
import re
# Setting the test string
s = "STACKED STONE 52\"X36\"X72\" AREAWELL BOMAN KEMP"
# Test the pattern on a s string
result = re.sub(r"[a-z ]", "", s , flags=re.I)
print(result)
结果是我得到52“ 36” 72,它只是用什么都代替了字符串中的字母。
根据我的研究,我认为我必须使用编译功能并定义模式以读取数字字母X数字字母X数字,因此类似[1-9],“ X”,[1-9],“ X ”,[1-9]
有什么想法如何构造它以及使用re的哪个功能?
我在下面尝试了几种解决方案,但是由于我实际上不只一种格式,因此我没有捕获每个实例。这是我要考虑的所有格式:
2x5x6
2"x5"6"
2'x5'6'
2"x5'x6
1/2"x5/8"x7'
因此,每个数字都可以是整数,也可以像1/2,并且每个数字都可以以醚英寸或英尺的形式出现。 可以单行写这个,还是我必须创建几个函数来容纳每个函数?
答案 0 :(得分:2)
这应该有帮助。
import re
s = "STACKED STONE 52X36X72 AREAWELL BOMAN KEMP"
m = re.search(r"\b(\d+X\d+X\d+)\b", s, flags=re.I)
if m:
print(m.group(1))
输出:
52X36X72