簡體   English   中英

Python正則表達式查找匹配的序列:單詞+空格+單詞

[英]Python regex to find sequences matching: word + whitespace + word

我對使用正則表達式並不陌生,並且一直在嘗試找出一種選擇列表元素的方法,該元素包含兩個由空格分隔的單詞。

我有以下虛擬列表:['word <= 0.02','word_one <= 0.04','word第二<= 0.01']

我只希望匹配元素3(“單詞2 <= 0.01”)

我試過使用:\\ b \\ w +(?= \\ s)\\ b,我從堆棧溢出中找出其他相關問題,從中切出一點點來尋找。 我知道這是行不通的,因為第二個單詞后面有空格(在<=之前),但是我只是想找出解決方法。

這是我的代碼示例:

example_list = ['word <= 0.02', 'word_one <= 0.04', 'word two <= 0.01']

new_list = []

regex = '\b\w+(?=\s)\b'

for i in example_list:
    if re.match(regex, i):
        new_list.append(i)

print(new_list)

要匹配以1+個單詞字符,然后是1+個空格和一個單詞char開頭的字符串,可以使用

import re
example_list = ['word <= 0.02', 'word_one <= 0.04', 'word two <= 0.01']
new_list = []
regex = r'\w+\s+\w+\b'
for i in example_list:
    if re.match(regex, i):
        new_list.append(i)
print(new_list)
# => ['word two <= 0.01']

參見Python演示

注意re.match已經將匹配項錨定在字符串的開頭,因此在上面的正則表達式中沒有^ 同樣,當您使用常規字符串文字時,模式中的\\b是退格字符,而不是單詞邊界模式。

如果您需要匹配字符串中任何地方都有單詞char +空格+單詞char的字符串,請將re.match替換為re.search ,甚至可以使用r'\\w\\s+\\w' 或者,如果您確實需要檢查單詞邊界,請使用r'\\b\\w+\\s+\\w+\\b'

暫無
暫無

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

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