Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python获取介于两者之间的字符串_Python_Regex_Tabs - Fatal编程技术网

使用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', '_']