Python Regex查找匹配的序列:Word Whitespace Word



我是使用正则表达式的新手,并且一直在尝试找出一种选择列表元素的方法,该元素包含whitespace分开的两个单词。

我有以下虚拟列表:['word< = 0.02','word_one< = 0.04','word二< = 0.01']

我只想要元素3匹配('Word二< = 0.01'(

我尝试使用: b w (?= s( b,我从堆栈溢出中切出的其他相关问题以查找。我知道这是行不通的,因为第二个单词之后有空格(< =(,但是我只是被困在试图弄清楚如何修复它。

这是我的代码的示例:

example_list = ['word <= 0.02', 'word_one <= 0.04', 'word two <= 0.01']
new_list = []
regex = 'bw+(?=s)b'
for i in example_list:
    if re.match(regex, i):
        new_list.append(i)
print(new_list)

以1 字char,然后是1个以上的whitespaces,然后再使用一个字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是backspace chars,而不是单词边界模式。

如果您需要匹配字符串中的字符串 whitespace(s( word char的字符串,请用re.search替换re.match,甚至可以使用r'ws+w'。或者,如果您确实需要检查单词边界,则r'bw+s+w+b'

最新更新