2 回答

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

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊
你的正則表達(dá)式模式:
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
添加回答
舉報(bào)