在两个字符之间打印字符串

时间:2019-07-25 09:56:33

标签: python regex

我正在编写一个python脚本,它将提取文本文件中行的特定部分并打印出来。该行的部分始终位于两个特定字符之间。例如,我需要打印"Ghost: ""("之间的所有内容。

我尝试导入re并使用它在字符串中搜索字符,但是失败了。

文件看起来像这样:

Ghost: john.doe.1 {} ...
Ghost: john.walker.4 {} ...
Ghost: john.johnny.3 {} ...
Ghost: john.craig.6 {} ...
...

我期望这样的事情:

john.doe.1
john.walker.4
john.johnny.3
john.craig.6

3 个答案:

答案 0 :(得分:1)

使用正则表达式,您可以执行以下操作:

re.search('((?:[a-z][a-z]+))(\\.)((?:[a-z][a-z]+))(\\.)(\\d+)', text).group()

输出:

john.doe.1
john.walker.4
john.johnny.3
john.craig.6

逻辑:

'((?:[a-z][a-z]+))' - looks for word (a-z)
'(\\.)'             - looks for dot
'((?:[a-z][a-z]+))' - looks for word (a-z)
'(\\.)'             - looks for dot
'(\\d+)'            - looks for digit (0-9)

答案 1 :(得分:0)

在空白处分割字符串,然后打印第二个子字符串,即

print(string.split(' ')[1])

答案 2 :(得分:0)

您可以使用拆分方法并提取所需的信息

word="Ghost: john.doe.1 {} ..."
word=word.split(":")[1]
print(word.split()[0])

输出:

john.doe.1