python正则表达式

python正则表达式,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=\[([^

如何使用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=\[([^\]]*)\]', 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=\[([^\]]*)\]'

有一个很好的在线工具可以在您键入时测试您的模式:。

您是否希望在顶级
[]
中嵌套
[]
?您是否希望在顶级
[]中嵌套
[]
?抱歉,我错误地编辑了您的答案,是为了编辑我自己的答案。还原了我的更改。抱歉,我错误地编辑了您的答案,是为了编辑我自己的答案。还原了我的更改。