如何使用python中的模式在字符串中查找单词

时间:2015-10-08 09:33:39

标签: python regex string

我有一个strings列表,我想检查一下这个字符串中是否有一个特定的word,如果是,我将它复制到一个列表中。这个词必须在= {

之前

例如,如果我有strings

TOTO_TEST = {0x68, 0x65, 0x6c, 0x6c, 0x6f}

word

一样
TOTO

我已经尝试过了:

if fnmatch.filter(strings, word + '* = {')

这找不到我的string。它仅在string为:

时才有效
TEST_TOTO = {0x68, 0x65, 0x6c, 0x6c, 0x6f}

你能告诉我 fnmatch 有什么问题吗? 顺便说一下,我真的愿意采用另一种方式来做到这一点!

2 个答案:

答案 0 :(得分:1)

import re

strings = 'TOTO_TEST = {0x68, 0x65, 0x6c, 0x6c, 0x6f}'
word = 'TOTO'

if re.search(r'\b' + word + r'(?=.*=\s*{)', strings, re.I):
    print 'yes'

您可以执行以下操作。在使用lookahead之后,我们确保在字符串中的某个位置={之后。

答案 1 :(得分:-1)

>>> import re
>>> myList = []
>>> myStr = "TOTO_TEST = {0x68, 0x65, 0x6c, 0x6c, 0x6f}"
>>> match = re.search(r"(TOTO)", myStr.split("=")[0], re.S)
>>> if match:
        myList.append(match.group(1))
>>> myList

输出:
[' TOTO']