[英]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.