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