我有一个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 有什么问题吗? 顺便说一下,我真的愿意采用另一种方式来做到这一点!
答案 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']