2 回答

TA貢獻1818條經驗 獲得超8個贊
您正在查找數字之間的一個或多個非空格( '\S+'
),后跟句點,后跟空格 ( '\d+\.\s'
),以及空格后跟短劃線 ( '\s-'
):
pattern = r'\d+\.\s(\S+)\s-' [re.findall(pattern, l)[0] for l in your_list]

TA貢獻1770條經驗 獲得超3個贊
你的正則表達式模式:
pattern = r"""
\d+ # 1 or more digits
\. # Escaped period character
\s+? # 1 or more whitespace
(\w+) # 1 or more alphabetic characters
\s+ # 1 or more whitespace
- # hyphen
.* # zero or more of anything besides newline.
"""
字符串列表:
words = [ "1. hello - jeff", "2. gello - meff", "3. fellow - gef", "12. willow - left"]
for word in words:
# capture results in a variable
# re.X for verbose pattern format.
tmp = re.search(pattern, word, flags = re.X)
# If variable is not None, print results of the first captured group.
if tmp:
print(tmp.group(1))
輸出:
hello
gello
fellow
willow
添加回答
舉報