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

Python 在字符串中查找动态字符串,python,string,Python,String,我正在努力寻找 f = "[[[someword_1234]]]" 里面 s = "weifjwieufh weifuwiefuhw ejfwi eujfh iwueh fiwe [[[someword_1234]]]" 但是三个方括号内的文字someword_1234可以更改。所以我不能做: s.find(f) 我怎样才能做到这一点 因为需要匹配模式而不是静态文本,所以应该使用re模块。具体而言,您正在寻找: 下面是模式匹配内容的说明: \[\[\[ # [[[ [^\]]+ # O

我正在努力寻找

f = "[[[someword_1234]]]"
里面

s = "weifjwieufh weifuwiefuhw ejfwi eujfh iwueh fiwe [[[someword_1234]]]"
但是三个方括号内的文字
someword_1234
可以更改。所以我不能做:

s.find(f)
我怎样才能做到这一点

因为需要匹配模式而不是静态文本,所以应该使用
re
模块。具体而言,您正在寻找:

下面是模式匹配内容的说明:

\[\[\[  # [[[
[^\]]+  # One or more characters that are not ]
\]\]\]  # ]]]
请注意,您需要转义
[
]
,因为它们在正则表达式模式中具有特殊意义。

因为您需要匹配模式而不是静态文本,所以应该使用
re
模块。具体而言,您正在寻找:

下面是模式匹配内容的说明:

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

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

可以使用非贪婪限定符来代替
[^\]+
+?
@augurar-这也适用。但是,它通常比较慢,因为解析器需要回溯以匹配其模式。使用
[^\]]+
可以让它在一次运行中获得所有内容。您应该始终尝试在非贪婪限定符上使用否定字符集来提高性能。您可以使用非贪婪限定符,而不是
[^\]+
+?
@augurar-这同样有效。但是,它通常比较慢,因为解析器需要回溯以匹配其模式。使用
[^\]]+
可以让它在一次运行中获得所有内容。您应该始终尝试在非贪婪限定符上使用否定字符集来提高性能。