在字符串中查找动态字符串

时间:2015-01-09 22:30:53

标签: python string

我正在努力寻找

f = "[[[someword_1234]]]"

s = "weifjwieufh weifuwiefuhw ejfwi eujfh iwueh fiwe [[[someword_1234]]]"

但三方括号内的文字someword_1234可能会发生变化。所以我不能这样做:

s.find(f)

我该如何处理?

1 个答案:

答案 0 :(得分:5)

由于您需要匹配模式而不是静态文本,因此您应该使用re模块。具体来说,您正在寻找re.search

>>> import re
>>> s = "weifjwieufh weifuwiefuhw ejfwi eujfh iwueh fiwe [[[someword_1234]]]"
>>> re.search(r'\[\[\[[^\]]+\]\]\]', s).group()
'[[[someword_1234]]]'
>>>

以下是模式匹配的解释:

\[\[\[  # [[[
[^\]]+  # One or more characters that are not ]
\]\]\]  # ]]]

请注意,您需要转义[],因为它们在Regex模式中具有特殊含义。