寻找在标签之间获取项目的方法
\t_e\t1\t_
我需要获得1,但在其他情况下,它将是一个更长的字符串。
re.search("\t_e\t(.*)\t_", string).group(1)
10次中有9次该行返回我想要但不总是的字符串/值,只需要在下划线后清楚它可以是从字母到空格的任何内容。
答案 0 :(得分:0)
尝试在?
之后添加*
字符,使正则表达式变得懒惰,如下所示:
re.search("\t_e\t(.*?)\t_", string).group(1)
^
这会使.*
匹配尽可能少,直到下一个\t
(从而阻止.
吃掉\t
)。
答案 1 :(得分:0)
试试这个:
re.findall(r"(?s)(?<=\t)(.*?)(?=\t)", "\t_e\t1\t_")
输出:
['_e', '1']
基本上,它使用积极的前瞻和后瞻性断言。此外,(?s)
设置“dotall”标志,允许它匹配空格。
答案 2 :(得分:0)
尝试查找不包含\t
>>> re.findall(r'([^\t]+)', '\t_e\t1\t_')
['_e', '1', '_']