我使用以下正則運算式來提取出現在某些單位之前的值:
([.\d] )\s*(?:kg|gr|g)
我想要的是從這個字串中包含該特定值的單位,例如:
"some text 5kg another text 3 g more text 11.5gr end"
我應該得到:
["5kg", "3 g", "11.5gr"]
我不知道如何修改上面的運算式以獲得想要的結果。謝謝你。
uj5u.com熱心網友回復:
import re
p = re.compile('(?<!\d|\.)\d (?:\.\d )?\s*?(?:gr|kg|g)(?!\w)')
print(p.findall("some text 5kg another text 3 g more text 11.5gr end"))
uj5u.com熱心網友回復:
其他解決方案(正則運算式演示):
(?i)\b\d \.?\d*\s*(?:kg|gr?)\b
(?i)
- 不區分大小寫\b
- 單詞邊界\d \.?\d*
- 匹配金額\s*
- 任意數量的空間(?:kg|gr?)
-匹配kg
,g
或gr
\b
- 單詞邊界
import re
p = re.compile(r"(?i)\b\d \.?\d*\s*(?:kg|gr?)\b")
print(p.findall("some text 5kg another text 3 g more text 11.5gr end"))
印刷:
['5kg', '3 g', '11.5gr']
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/535554.html
上一篇:如何通過使用R保留其順序將字串中的字符替換為向量中的字符
下一篇:正則運算式查找一些特殊的字符匹配