我有一些使用 W、L、H 和 D 表示寬度、長度等的物件測量值。我想在數字旁邊移動英寸和英尺符號 (", ') 并在英寸或英尺旁邊移動這些字母符號:
示例輸入:
09 ' 09 " 09 ' 09 " 測驗 09 " W a 09" W a
09 ' 09" 09 ' 09 "測驗 09" L a 09" wa
09 ' 09 " 09 ' 09 "測驗 09 " L a 09" 公頃
09 ' 09 " 09 ' 09 "測驗 09 " la 09" da
09'09"09'09"測驗09"字
期望的輸出:
09' 09" 09' 09" 測驗 09"W a 09"W a
09' 09" 09' 09" 測驗 09"L a 09"wa
09' 09" 09' 09" 測驗 09"L a 09"ha
09' 09" 09' 09" 測驗 09"la 09"da
09' 09" 09' 09" 測驗 09" 字
我嘗試了這個運算式的多種變體,每一個都在 regex101.com 上作業,但在實際的 Python 上卻沒有:
模式: r'(?<=[0-9])( )?("|')((( )?([wWlLhHdD])( ))|( )?)(.)?'
替換:\2\6 \9
實際輸入:
3/8"W x 20" H -8" Cortador de haste para madeira
實際輸出:
3/8"WX 20"H -8" Cortador de Haste p/馬德拉
期望的輸出:
3/8"WX 20"H -8" Cortador de Haste p/馬德拉
請注意它幾乎是如何作業的,除了最后一個 " 沒有與單詞分開并與數字放在一起。我做錯了什么?因為我正在學習正則運算式,所以我對我的錯誤和替代方案一樣感興趣,可能更有效的解決方案。
代碼:
new_title = re.sub(regex_prefix keyword_to_replace, keyword_to_replace_with, new_title, re.IGNORECASE)
uj5u.com熱心網友回復:
我不確定您嘗試了哪個確切的命令,但我可能會使用以下命令:
# input
s='3/8 "W x 20" H -8 "Cortador de haste para madeira'
import re
re.sub(r'(?<=\d)\s*([\'"])\s*([wWlLhHdD]\b)?\s*', r'\1\2 ', s)
輸出: '3/8"W X 20"H -8" Cortador de Haste p/ Madeira'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/344556.html
