如何在python中使用reg表达式提取两个子字符串之间的字符?



Eg-My 字符串是 :

str1="[00:00:0.047] [TestRunner] [Main] [sleep_assoc] > [Iteration:0][00:00:0.063] [TestRunner] [Main] [sleep_assoc] > [!Iteration:0][00:00:0.063]"

我想将[Iteration:0][!Iteration:0]之间的所有字符存储到一个字符串变量中。

您可以使用.*?来执行此操作,该匹配从[Iteration:0]到找到[!Iteration:0]的所有字符:

In [1]: import re
In [2]: s = '[00:00:0.047] [TestRunner] [Main] [sleep_assoc] > [Iteration:0][00:00:0.063] [TestRunner] [Main] [sleep_as
...: soc] > [!Iteration:0][00:00:0.063]'
In [3]: m = re.search(r'[Iteration:0](.*?)[!Iteration:0]', s)
In [4]: res = m.group(1)
In [5]: res
Out[5]: '[00:00:0.063] [TestRunner] [Main] [sleep_assoc] > '

如果字符串如此简单,则不需要正则表达式。

做个str1.split('[Iteration:0]')[1].split('[!Iteration:0]')[0]

你明白代码还是我解释一下?

最新更新