簡體   English   中英

使用Python中的正則表達式從字符串中提取數字(包括破折號)

[英]Extract number (dash included) from string using regex in Python

您好,感謝您的幫助。

字符串示例:

“你好 43543” ---> “43543”
“約翰·多伊 434-234”--->“434-234”

我需要一個正則表達式來提取右邊的例子。

如果您的所有字符串都是這樣,則無需re即可實現相同的效果:

s = "John Doe 434-234"
n = s.split()[-1] 

print(n)

>>> "434-234"

它將在空格上拆分您的字符串並為您提供最后一個字段。

我會這樣做:

import re
pattern = r'\d[0-9\-]*'
number1 = re.findall(pattern,'Hello 43543')
number2 = re.findall(pattern,'John Doe 434-234')
print(number1[0]) #43543
print(number2[0]) #434-234

我的解決方案假設您正在尋找任何以 digit 開頭的字符串,並且所有其他字符都是 digit 或- ,這意味着它也會抓取例如4---9-2-4---等等,但是這個在您的用例中可能不是問題。

我想指出,編寫模式之前,您應該回答問題:它應該完全匹配什么 我的模式按您給出的示例的預期工作,但請記住,這並不自動意味着它會為您可能想要使用它處理的所有數據提供所需的輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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