python正则表达式
如何使用re模块查找symolpython正则表达式,python,regex,Python,Regex,如何使用re模块查找symol#TR=之后的所有内容,它位于[]中。例如,#TR=[dfgg-dfgddfg-dgfgf-dgfgfg](?)? 如果要仅搜索此模式的第一个匹配项,请使用: matches = re.search('#TR=\[([^\]]*)\]', txt) if matches: print(repr(matches.group(1))) ' dfgg dfg ' 如果要查找文本中的所有引用,请使用: matches = re.findall('#TR=\[([^
#TR=
之后的所有内容,它位于[]
中。例如,#TR=[dfgg-dfgddfg-dgfgf-dgfgfg]
(?)?
如果要仅搜索此模式的第一个匹配项,请使用:
matches = re.search('#TR=\[([^\]]*)\]', txt)
if matches:
print(repr(matches.group(1)))
' dfgg dfg '
如果要查找文本中的所有引用,请使用:
matches = re.findall('#TR=\[([^\]]*)\]', txt)
if matches:
print(matches)
[' dfgg ', 'ala ma kota']
请记住检查您正在搜索的字符是否包含在正则表达式中(如[
或]
)。如果它们是特殊字符,请使用反斜杠将其转义:\[
)
还请记住,默认情况下,正则表达式是“贪婪”的,这意味着它们试图获取尽可能多的文本来匹配模式;因此,如果使用*
(这意味着“匹配除换行符以外的任何字符”;)而不是[^\]*
(这意味着“在找到]
之前进行匹配,并在它之前停止”),可匹配的文本太多:
matches = re.findall('#TR=\[(.*)\]', txt)
if matches:
print(matches)
[' dfgg ] a kuku #TR=[ala ma kota']
您还可以在模式中的限定符(*
,+
)后面使用“非贪婪”修饰符?
),该修饰符启用“字符越少越好”匹配(使用*?
,+?
)。结果可能更具可读性:
'#TR=\[(.*?)\]'
而不是:
'#TR=\[([^\]]*)\]'
有一个很棒的在线工具可以在您键入时测试您的模式:
如果要仅搜索此模式的第一个匹配项,请使用:
matches = re.search('#TR=\[([^\]]*)\]', txt)
if matches:
print(repr(matches.group(1)))
' dfgg dfg '
如果要查找文本中的所有引用,请使用:
matches = re.findall('#TR=\[([^\]]*)\]', txt)
if matches:
print(matches)
[' dfgg ', 'ala ma kota']
请记住检查您正在搜索的字符是否包含在正则表达式中(如[
或]
)。如果它们是特殊字符,请使用反斜杠将其转义:\[
)
还请记住,默认情况下,正则表达式是“贪婪”的,这意味着它们试图获取尽可能多的文本来匹配模式;因此,如果使用*
(这意味着“匹配除换行符以外的任何字符”;)而不是[^\]*
(这意味着“在找到]
之前进行匹配,并在它之前停止”),可匹配的文本太多:
matches = re.findall('#TR=\[(.*)\]', txt)
if matches:
print(matches)
[' dfgg ] a kuku #TR=[ala ma kota']
您还可以在模式中的限定符(*
,+
)后面使用“非贪婪”修饰符?
),该修饰符启用“字符越少越好”匹配(使用*?
,+?
)。结果可能更具可读性:
'#TR=\[(.*?)\]'
而不是:
'#TR=\[([^\]]*)\]'
有一个很好的在线工具可以在您键入时测试您的模式:。您是否希望在顶级
[]
中嵌套[]
?您是否希望在顶级[]中嵌套[]
?抱歉,我错误地编辑了您的答案,是为了编辑我自己的答案。还原了我的更改。抱歉,我错误地编辑了您的答案,是为了编辑我自己的答案。还原了我的更改。