簡體   English   中英

Python 正則表達式未正確捕獲組

[英]Python regex not capturing groups properly

我有以下正則表達式(?:RE:\w+|Reference:)\s*((Mr|Mrs|Ms|Miss)?\s+([\w-]+)\s(\w+))

輸入文本示例:

  1. RE:11567 無名小姐 12345678
  2. 參考:張小姐 12345678
  3. RE:J123 無名小姐 12345678
  4. RE:J123 Miss Jane Doe 12345678 參考:測試公司

示例代碼:

import re

pattern = re.compile('(?:RE:\w+|Reference:)\s*((Mr|Mrs|Ms|Miss)?\s+([\w-]+)\s(\w+))')
result = pattern.findall('RE:11693 Miss Jane Doe 12345678')

對於所有 4 個,我期望輸出('Miss Jane Doe', 'Miss', 'Jane', 'Doe') 但是在第 4 個文本示例中,我得到[('Miss Jane Doe', 'Miss', 'Jane', 'Doe'), (' Test Company', '', 'Test', 'Company')]

我怎樣才能得到正確的輸出

只需將^添加到正則表達式的開頭即可僅在開頭匹配。 這使得它成為^(?:RE:\w+|Reference:)\s*((Mr|Mrs|Ms|Miss)?\s+([\w-]+)\s(\w+))

暫無
暫無

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

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