使用python获取介于两者之间的字符串
正在寻找在选项卡之间获取项目的方法使用python获取介于两者之间的字符串,python,regex,tabs,Python,Regex,Tabs,正在寻找在选项卡之间获取项目的方法 \t_e\t1\t_ 我需要得到1,但在其他情况下,它将是一个更长的字符串 re.search("\t_e\t(.*)\t_", string).group(1) 该行10次中有9次返回我想要的字符串/值,但并非总是如此,只是为了在下划线后清楚显示,它可以是任何字符,从字母到空格。尝试通过在*之后添加?字符使正则表达式变懒,如下所示: re.search("\t_e\t(.*?)\t_", string).group(1)
\t_e\t1\t_
我需要得到1,但在其他情况下,它将是一个更长的字符串
re.search("\t_e\t(.*)\t_", string).group(1)
该行10次中有9次返回我想要的字符串/值,但并非总是如此,只是为了在下划线后清楚显示,它可以是任何字符,从字母到空格。尝试通过在
*
之后添加?
字符使正则表达式变懒,如下所示:
re.search("\t_e\t(.*?)\t_", string).group(1)
^
这使得*
尽可能少地匹配,直到下一个\t
(从而防止
吃掉\t
)。尝试以下方法:
re.findall(r"(?s)(?<=\t)(.*?)(?=\t)", "\t_e\t1\t_")
基本上,它使用的是正向的前向和后向断言。另外,
(?s)
设置“dotall”标志,允许它匹配空白。尝试查找不包含\t
的最长匹配项
>>> re.findall(r'([^\t]+)', '\t_e\t1\t_')
['_e', '1', '_']
我知道我不能说谢谢,但我必须说。谢谢我确实想把问题放在下划线之后,但不是放在实际匹配部分。@user1620852只说“谢谢”是不鼓励的,但不是严格禁止的:)很高兴它帮助了你^_^
>>> re.findall(r'([^\t]+)', '\t_e\t1\t_')
['_e', '1', '_']