我需要定期提取,在特定單詞之后提取護照號碼паспорт。
可能的選項是:
паспорт 5715 424141паспорт 5715-424141паспорт 5715 - 424141
我需要在單詞出現后提取前 4 個和后 6 個數字паспорт,所以結果應該是5715and 424141。
我試過^(\d{4})\ (\d{6})$了,但沒有檢測到我的模式。
uj5u.com熱心網友回復:
對于初學者,該^符號表示字串的開頭,因此您的模式已經失敗(因為字串以“паспорт”開頭)。
數字組之間的似乎-也是可選的,并且可能包含您不支持的空格。
要解決所有這些問題,請使用:
паспорт (\d{4})\s*-?\s*(\d{6})
паспорт- 字面匹配。(\d{4})- 四位數字的捕獲組。\s*- 任意數量的空格,包括 0。-?- 一個可選的破折號。\s*- 任意數量的空格,包括 0。(\d{6})- 一個六位數的捕獲組。
并且由于您使用 Python 進行了標記:
import re
s = """паспорт 5715 424141
паспорт 5715-424141
паспорт 5715 - 424141"""
for line in s.splitlines():
print(re.search(r"паспорт (\d{4})\s*-?\s*(\d{6})", line).groups())
# ('5715', '424141')
正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/492561.html
上一篇:計算字串中特定單詞的出現次數
下一篇:有什么選項可以將其轉換為字串?
