[英]Python - Regular Expression pattern
我正在嘗試創建一個函數,它將使用像 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 這只是用空替換字符串中的字母。
根據我的研究,我認為我必須使用 compile 函數並定義模式來讀取數字字母 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,每個數字都可以以以太英寸或英尺的形式出現。 是否可以將其寫在一行中,或者我必須創建幾個函數來適應每個函數?
這應該有幫助。
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.