繁体   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