簡體   English   中英

Python - 正則表達式模式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM